{"id":13552,"date":"2024-03-15T07:21:49","date_gmt":"2024-03-15T07:21:49","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/"},"modified":"2025-08-05T20:07:41","modified_gmt":"2025-08-05T20:07:41","slug":"how-to-loop-through-table-data-in-oracle","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/","title":{"rendered":"Oracle Cursor: Loop Table Data in SQL"},"content":{"rendered":"<p>To cycle through table data, you can use a cursor to iterate through each row of the table. Here is an example of using a cursor to cycle through table data:<\/p>\n<ol>\n<li>Declare a cursor variable to store the query results.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">DECLARE<\/span>\r\n  <span class=\"hljs-keyword\">CURSOR<\/span> c_table_data <span class=\"hljs-keyword\">IS<\/span>\r\n    <span class=\"hljs-keyword\">SELECT<\/span> <span class=\"hljs-operator\">*<\/span> <span class=\"hljs-keyword\">FROM<\/span> \u8868\u540d;\r\n  <span class=\"hljs-comment\">-- \u66ff\u6362\u201c\u8868\u540d\u201d\u4e3a\u5b9e\u9645\u7684\u8868\u540d<\/span>\r\n<\/code><\/pre>\n<ol>\n<li>Declare a variable to store the single data row returned by the cursor.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code>  v_data \u8868\u540d<span class=\"hljs-operator\">%<\/span>ROWTYPE;\r\n  <span class=\"hljs-comment\">-- \u66ff\u6362\u201c\u8868\u540d\u201d\u4e3a\u5b9e\u9645\u7684\u8868\u540d<\/span>\r\n<\/code><\/pre>\n<ol>\n<li>Open the cursor.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">BEGIN<\/span>\r\n  <span class=\"hljs-keyword\">OPEN<\/span> c_table_data;\r\n<\/code><\/pre>\n<ol>\n<li>Iterate through the data rows returned by the cursor until there is no more data.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code>  LOOP\r\n    <span class=\"hljs-keyword\">FETCH<\/span> c_table_data <span class=\"hljs-keyword\">INTO<\/span> v_data;\r\n    EXIT <span class=\"hljs-keyword\">WHEN<\/span> c_table_data<span class=\"hljs-operator\">%<\/span>NOTFOUND;\r\n    <span class=\"hljs-comment\">-- \u5728\u6b64\u5904\u5904\u7406\u6570\u636e\u884c\uff0c\u4f8b\u5982\u8f93\u51fa\u6216\u64cd\u4f5c\u6570\u636e<\/span>\r\n    ...\r\n  <span class=\"hljs-keyword\">END<\/span> LOOP;\r\n<\/code><\/pre>\n<ol>\n<li>Close the cursor.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code>  <span class=\"hljs-keyword\">CLOSE<\/span> c_table_data;\r\n<span class=\"hljs-keyword\">END<\/span>;\r\n<\/code><\/pre>\n<p>By processing data rows within a loop, you can perform any operation you desire, such as outputting data, updating data, or executing other logic. Please note that the code block in the example above is for demonstration purposes only, and you will need to modify and expand it based on your actual requirements.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>To cycle through table data, you can use a cursor to iterate through each row of the table. Here is an example of using a cursor to cycle through table data: Declare a cursor variable to store the query results. DECLARE CURSOR c_table_data IS SELECT * FROM \u8868\u540d; &#8212; \u66ff\u6362\u201c\u8868\u540d\u201d\u4e3a\u5b9e\u9645\u7684\u8868\u540d Declare a variable to store [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[90,18070,18071,18073,18072],"class_list":["post-13552","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-database-programming","tag-oracle-cursor","tag-pl-sql-loop","tag-sql-fetch","tag-table-iteration"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Oracle Cursor: Loop Table Data in SQL - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how to iterate table data in Oracle using cursors with step-by-step code examples.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Oracle Cursor: Loop Table Data in SQL\" \/>\n<meta property=\"og:description\" content=\"Learn how to iterate table data in Oracle using cursors with step-by-step code examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T07:21:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-05T20:07:41+00:00\" \/>\n<meta name=\"author\" content=\"Liam\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Liam\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/\"},\"author\":{\"name\":\"Liam\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671\"},\"headline\":\"Oracle Cursor: Loop Table Data in SQL\",\"datePublished\":\"2024-03-15T07:21:49+00:00\",\"dateModified\":\"2025-08-05T20:07:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/\"},\"wordCount\":134,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"database programming\",\"Oracle cursor\",\"PL\/SQL loop\",\"SQL fetch\",\"Table iteration\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/\",\"name\":\"Oracle Cursor: Loop Table Data in SQL - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T07:21:49+00:00\",\"dateModified\":\"2025-08-05T20:07:41+00:00\",\"description\":\"Learn how to iterate table data in Oracle using cursors with step-by-step code examples.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Oracle Cursor: Loop Table Data in SQL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671\",\"name\":\"Liam\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g\",\"caption\":\"Liam\"},\"sameAs\":[\"http:\/\/Wilson\"],\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/liamwilson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Oracle Cursor: Loop Table Data in SQL - Blog - Silicon Cloud","description":"Learn how to iterate table data in Oracle using cursors with step-by-step code examples.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/","og_locale":"en_US","og_type":"article","og_title":"Oracle Cursor: Loop Table Data in SQL","og_description":"Learn how to iterate table data in Oracle using cursors with step-by-step code examples.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T07:21:49+00:00","article_modified_time":"2025-08-05T20:07:41+00:00","author":"Liam","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Liam","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/"},"author":{"name":"Liam","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671"},"headline":"Oracle Cursor: Loop Table Data in SQL","datePublished":"2024-03-15T07:21:49+00:00","dateModified":"2025-08-05T20:07:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/"},"wordCount":134,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["database programming","Oracle cursor","PL\/SQL loop","SQL fetch","Table iteration"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/","name":"Oracle Cursor: Loop Table Data in SQL - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T07:21:49+00:00","dateModified":"2025-08-05T20:07:41+00:00","description":"Learn how to iterate table data in Oracle using cursors with step-by-step code examples.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-loop-through-table-data-in-oracle\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Oracle Cursor: Loop Table Data in SQL"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671","name":"Liam","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g","caption":"Liam"},"sameAs":["http:\/\/Wilson"],"url":"https:\/\/www.silicloud.com\/blog\/author\/liamwilson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/13552","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=13552"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/13552\/revisions"}],"predecessor-version":[{"id":157545,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/13552\/revisions\/157545"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=13552"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=13552"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=13552"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}