1. 程式人生 > >SQL : 遊標使用例項

SQL : 遊標使用例項

使用遊標大體需要經過以下幾個步驟:
1.定義遊標:declare cursor
2.開啟遊標:open cursor
3.取得遊標中單個的記錄,並將記錄中的欄位賦值給變數。fetch cursor
   (每取一個值,遊標會自動前移)
4.迴圈讀取遊標,並對每一個記錄進行處理。fetch與fetch next 是等價的。
5.關閉並釋放遊標,close cursor, deallocate cursor。

下面給出一個批量更改資料庫中記錄的例子,這個例子把價目表中所有料品的價格用0到100之間的數值更新,原價目表中所有料品的價格都為0,更新之後所有的價格都是0到100之間的隨機數:

use GuruERP

-- 定義遊標MyTestCursor:
declare  MyTestCursor cursor
for select PGI_ITM_CODE,PGI_ListPrice from TBLPRICELISTGROUPITEM
/*從表中選取兩個欄位*/
/* 表TBLPRICELISTGROUPITEM中的欄位PGI_ITM_CODE是Unique Key  */

-- 開啟遊標MyTestCursor:
open MyTestCursor

declare @PGI_ITM_CODE char(28)
declare @PGI_ListPrice float

--fetch取出遊標所指的記錄,並將記錄結果存入到變數中:
fetch from MyTestCursor into @PGI_ITM_CODE,@PGI_ListPrice


/*****************  begin of loop *******************************/
while @@FETCH_STATUS = 0
Begin 
update TBLPRICELISTGROUPITEM set PGI_ListPrice=floor(100*rand()) where

[email protected]_ITM_CODE
fetch next from MyTestCursor into @PGI_ITM_CODE,@PGI_ListPrice
End   
/*****************  end of loop *******************************/

select  @PGI_ITM_CODE as code ,@PGI_ListPrice as price

/***********關閉遊標,釋放遊標:***************/
close MyTestCursor
deallocate MyTestCursor

再重複一下,使用遊標批量更改或填充資料庫,大體經過declare,open,fetch,loop fetch,close and deallocate 五個步驟。

備註1:
       while迴圈體以BEGIN開始,以END結束,當條件為真時迴圈繼續,為假則結束
備註2:
       @@FETCH_STATUS是sql server中的一個變數

相關推薦

Transact-SQL遊標例項

print '------------- Authors report ---------------' print '' --定義authors表的遊標 declare author_cursor

PL/SQL遊標之顯示遊標操作例項講解

顯式遊標顯式遊標是程式設計師定義遊標獲得更多的控制權的上下文的區域。顯式遊標應在PL/SQL塊的宣告部分中定義。這是建立一個SELECT語句返回多行。建立顯式遊標語法是:CURSOR cursor_na

PL/SQL遊標---隱式遊標操作例項

遊標是指向這一上下文的區域。 PL/SQL通過控制游標在上下文區域。遊標持有的行(一個或多個)由SQL語句返回。行集合游標保持的被稱為活動集合。可以命名一個游標,它可以在程式中獲取和處理SQL語句,一次返回的行引用。有兩種型別的遊標:隱式遊標顯式遊標隱式遊標Oracle在一個

SQL遊標使用及例項

declare my_cursor cursor scroll dynamic /*scroll表示可隨意移動遊標指標(否則只能向前),dynamic表示可以讀寫遊標(否則遊標只讀)*/forselect * from t_msg open my_cursordeclare

SQL遊標的簡單例項

下面是一個遊標的例項,方便初學者學習,也可以防止自己忘記 。 DECLARE H_SETTLE CURSOR SCROLL FOR SELECT * FROM TABELNAME      --宣告一個可迴圈操作的遊標 OPEN H_SETTLE      --開啟遊標

SQL : 遊標使用例項

使用遊標大體需要經過以下幾個步驟:1.定義遊標:declare cursor2.開啟遊標:open cursor3.取得遊標中單個的記錄,並將記錄中的欄位賦值給變數。fetch cursor   (每取一個值,遊標會自動前移)4.迴圈讀取遊標,並對每一個記錄進行處理。fetc

sql中關於T-sql遊標的使用(附有例項

select *from Student order by SName for read only open s_sur select @@CURSOR_ROWS fetch next from s_sur update Student set SAge ='50' where current of s_su

sql遊標

gin fse end gist and eve update 行數 tco 記錄下遊標的使用,也可以在遊標中嵌入循環,即雙重循環,代碼如下 declare @GName varchar(50),@GcName varchar(50)--臨時變量,用來保存遊標

PL/SQL 遊標的使用詳解

四個步驟 語法 list %type 查詢 dbms 打開 def default 一:通過遊標,PL/SQL 指向語句被分析以後的活動集 二:對於不同的SQL語句,遊標的使用情況不同:1:非查詢語句--隱式的2:結果是單行的查詢語句--隱式的或顯式的3:結果是多行的查詢語

PL/SQL 遊標 (實驗七)

輸出 姓名 blog lec -m %rowtype .com 技術分享 begin PL/SQL 遊標 emp、dept 目標表結構及數據 要求 基於部門表建立遊標dept_cursor1,使用記錄變量接收遊標數據,輸出部門表信息; 顯示格式: 部 門 號: XXX

sql語句代編寫、sql 遊標 、事務代寫

directory latin number api postgre ken self eache 課程設計 sql語句代編寫、sql 遊標 、事務代寫1. AimsThis project aims to give you practice in? reading and

Mybatis-Mapper對映sql片段例項

Mapper.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/myba

oracle sql 遊標的簡單用法(tip:sql中兩個單引號表示一個單引號)

--遊標遍歷某個欄位 (打印出來) declare            res_sql varchar2(2000); cursor cur is            select f_

sql 遊標

行數據 brush dealloc pen lose true 遊標 div 定義 Begin DECLARE @StaId varchar(50) DECLARE My_Cursor CURSOR --定義遊標 FOR (SELECT StationId FR

解決 | 此資料庫檔案跟當前sql server例項不相容 & sql server2008無法連線到(local)

最近在搞ASP.NET,因實驗室VS版本跟PC不一樣可能,拷回來一開啟就這樣子: 眉頭一皺的我開啟我的古董SQL,自從用了MySQL就沒碰它了我的鍋。。。果然。。連線的時候。。

PL/SQL 遊標變數

遊標變數與遊標相似,有其共性,也有其不同點。就其共性來說兩者都是指向多行查詢的結果集中的當前行。都要經歷宣告,開啟,檢索與 關閉的過程。所不同的是遊標與遊標變數類似於常量與變數。遊標是靜態的,而遊標變數是動態的,因為遊標變數並不與某個特定的查詢相繫結。 所以,遊標變數可以開啟任何型別相容

elasticsearch-sql JDBC例項

https://github.com/NLPchina/elasticsearch-sql java連線elasticsearch-sql 測試程式碼   import java.sql.*; import java.util.Properties; imp

SQL遊標原理和使用方法

SQL遊標原理和使用方法 資料庫開發過程中,當你檢索的資料只是一條記錄時,你所編寫的事務語句程式碼往往使用SELECT INSERT 語句。但是我們常常會遇到這樣情況,即從某一結果集中逐一地讀取一條記錄。那麼如何解決這種問題呢?遊標為我們提供了一種極為優秀的解決方案。 1.1 遊標和遊標的優點

mysql 遊標例項

遊標(Cursor)是處理資料的一種方法,為了檢視或者處理結果集中的資料,遊標提供了在結果集中一次一行或者多行前進或向後瀏覽資料的能力。可以把遊標當作一個指標,它可以指定結果中的任何位置,然後允許使用者對指定位置的資料進行處理。 --declare --open --fetch --

使用 SQL Server Management Studio 連線和查詢 SQL Server 例項

1、連線SQLServer例項 1.1、啟動 SQL Server Management Studio。 首次執行 SSMS 時,系統將開啟“連線到伺服器”視窗。 如未開啟,可以選擇“物件資源管理器” > “連線” > “資料庫引擎”,將其手動開啟。