1. 程式人生 > >SQL遊標的簡單例項

SQL遊標的簡單例項

下面是一個遊標的例項,方便初學者學習,也可以防止自己忘記 。

DECLARE H_SETTLE CURSOR SCROLL FOR SELECT * FROM TABELNAME      --宣告一個可迴圈操作的遊標

OPEN H_SETTLE      --開啟遊標

FETCH FIRST FROM H_SETTLE INTO @VARIABLE_NAME=FIELD_NAME,@VARIABLE_NAME=FIELD_NAME   --遊標移到第一個記錄

 WHILE (@@FETCH_STATUS=0)       --檢查遊標是不是最後一個,如果不是則進行中間的程式

      BEGIN

      ……      --一段處理程式段

      FETCH NEXT  FROM H_SETTLE INTO @VARIABLE_NAME=FIELD_NAME,@VARIABLE_NAME=FIELD_NAME   --遊標移到下一個記錄

      END

      CLOSE H_SETTLE       --關閉遊標

       DEALLOCATE H_SETTLE       --釋放遊標

------------------------------------以上是SQL2005下的例子------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

--------------------------------------以下是SQL2008下的例子------------------------------------

--宣告變數
DECLARE @Pat_IN_HOS_ID DECIMAL(18,0)
DECLARE @IN_BILL_ID DECIMAL(18,0) --需要插入的IN_BILL_ID
DECLARE @PAT_IN_CHARGE_DOC_ID VARCHAR(35) --上一行記錄的值
DECLARE @IN_HOS_DOC_ID VARCHAR(35) --上一行記錄的值
DECLARE @CHIEF_DOC_ID VARCHAR(35) --上一行記錄的值
DECLARE @MANAGE_BED_NURSE_ID VARCHAR(35) --上一行記錄的值
--判斷臨時表是否存在,不存在在建立臨時表,用於儲存修改記錄
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[DBO].[IN_BILL_RECORD_LSG]') AND type in (N'U'))
BEGIN
 --如果不存在建立一個表,用於備份要修改的資料
END
--把需要修改的記錄插入到臨時表
INSERT INTO [DBO].IN_BILL_RECORD_LSG **************************************
--定義遊標,用於迴圈處理需要處理的記錄
DECLARE CUR_INBILL CURSOR SCROLL FOR SELECT b.IN_BILL_ID,b.PAT_IN_HOS_ID FROM [DBO].IN_BILL_RECORD_EXTEND a
RIGHT JOIN [DBO].IN_BILL_RECORD b ON a.IN_BILL_ID = b.IN_BILL_ID WHERE  PAT_IN_CHARGE_DOC_ID IS NULL
AND CREATE_TIME>='2014-09-09 00:00:00.000'  ORDER BY b.IN_BILL_ID ASC
--開啟遊標
OPEN CUR_INBILL
FETCH FIRST FROM CUR_INBILL INTO @IN_BILL_ID,@Pat_IN_HOS_ID
WHILE (@@FETCH_STATUS=0)
 BEGIN
  --處理過程
  
  
  --迴圈下一個遊標 
  FETCH NEXT FROM CUR_INBILL INTO @IN_BILL_ID,@Pat_IN_HOS_ID
 END
--關閉遊標並釋放變數
CLOSE CUR_INBILL
DEALLOCATE CUR_INBILL

相關推薦

SQL : 遊標使用例項

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

利用hackbar進行sql注入簡單例項

這個簡單的例項是對一個網址進行sql注入,獲得管理員的賬號和密碼 步驟如下: (1)先猜解當前網頁的欄位數 在hackbar的輸入框中輸入: http://www.xxx/news_deta

SQL遊標簡單例項

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

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

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

Sql server簡單遊標

DECLARE Stud_Cursor SCROLL CURSOR              --宣告一個遊標 FOR --查詢學生資訊表中的資料資訊 SELECT [O

SQL注入的一個簡單例項

<p>很多Web應用程式都使用資料庫來儲存資訊。SQL命令就是前端Web和後端資料庫之間的介面,使得資料可以傳遞至Web應用程式。很多Web站點都會利用使用者輸入的引數動態地生成SQL查詢要求,攻擊者通過在URL、表單域,或者其他的輸入域中輸入自己的

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

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

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

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

ASP.NET 連線SQL Server 增刪改查簡單例項

本文主要講解連線ASP.NET 連線資料庫最簡單的方法和增刪改查的小例子,因為只涉及到一個頁面,所以沒有使用web.config,以及使用DBHelper,旨在讓讀者們拋開封裝好的東西,瞭解實際程式碼。   因為本例涉及到資料庫,所以在開始之前請先在資料庫裡新建一個名為“test”

Sql Server中儲存過程中輸入和輸出引數(簡單例項,一看就懂)

-- ===================【建立儲存過程】===================== USE [Message] GO /****** Object: StoredProcedure [dbo].[讀取外部資料庫查詢] Script Date:

利用navicat建立儲存過程、觸發器和使用遊標簡單例項

建立儲存過程和觸發器 1、建表 首先先建兩張表(users表和number表),具體設計如下圖: 2、儲存過程 寫一個儲存過程,往users表中插入資料,建立過程如下:     程式碼如下: BEGIN #Routine body goes here... d

SQL遊標使用及例項

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

SQL Server 2008 遊標使用例項

本文使用以下兩張資料庫表作為演示物件。 1 遊標初探--使用遊標進行遍歷 declare @classAndStudent table( class_id int,

SQL Server 遊標使用例項

DECLARE @id varchar(50) DECLARE @value varchar(2000) DECLARE My_Cursor CURSOR --定義遊標 FOR (SELECT id,value FROM table1 where id > 100

mysql儲存過程簡單例項 變數賦值 遊標遍歷

應用場景: 有兩張表,學生表和對應的各科成績表。 學生表student 欄位:id int, name varchar(20)數值:              1             A              2             B  成績表score 欄

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

oracle儲存過程簡單例項 變數賦值 遊標遍歷

應用場景: 有兩張表,學生表和對應的各科成績表。 學生表student 欄位:id int name varchar(20) 數值:1A             2B 成績表score 欄位:id int     studentid int    subjectid int

『ORACLE』 SQL語句簡單應用(四)(11g)

union times truncate sql語句 默認值 位數 lib rownum dual 排序 後加 nulls last 在降序排列中把null放在最後 select to_char(sysdate,‘q‘) from dual; dual

『ORACLE』 SQL語句簡單應用(五)(11g)

應用 11g sql cal foreign ora 每次 int pri not null 非空 字段+not null unique 唯一 primary key 主鍵(確保數據不能重復) foreign key 外鍵 check 必須

sql遊標

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