oracle sql游標入門基礎

2021-10-07 20:02:46 字數 2798 閱讀 5810

declare

– 定義游標

cursor c_cursor is

–返回 lsbzdw_dwbh ,lsbzdw_dwmc

select lsbzdw_dwbh ,lsbzdw_dwmc from lsbzdw where lsbzdw_tybz=0 and lsbzdw_dwmc not like 『%合併%』

and lsbzdw_dwmc not like 『%抵消%』 and lsbzdw_dwbh !=『100001』 and rownum<=200;

– 宣告變數

v_dwbh lsbzdw.lsbzdw_dwbh%type;

v_dwmc lsbzdw.lsbzdw_dwmc%type;

v_ddh varchar2(50);

v_userid varchar2(50);

v_number varchar2(50);

v_sql varchar2(3000);

v_domainid varchar2(50);

begin

– 開啟游標

open c_cursor;

– 獲取資料 第一行賦值

fetch c_cursor into v_dwbh, v_dwmc;

– 處理資料 迴圈

while c_cursor%found loop

– :=賦值 || 為拼接字串

v_ddh:=『gsld』||v_dwbh;

v_sql:=『select sys_guid() from dual』;

execute immediate v_sql into v_userid;

– 『』』||v_dwbh||』』』 引號內部 單引號要用兩個表示乙個 『||v_dwbh||』 表示將 v_dwbh裡面的值當做乙個字串來傳輸 整體可以理解為賦值

v_sql:=『select id from gspuserdomain where shortpinyin=』』』||v_dwbh||』』』 and name =』『財務部』』』;

execute immediate v_sql into v_domainid;

insert into gspuser (startpageconfig, validfrom, state, alterpassflag, name, deforgid, notlogin_maxdays, type, profile, password, authcontent,

lastlogintegerime, userprofile, createddate, sysinit, passvalidspan, passlastchangedtime, id, description, creatorid, locktime, validto, timelimit, daylimit,

code, lastlogintime, telnumber, isimafuser, seclevel, userpic, lockpassword, dsource, isimuser, isusedynamicpass, lastmodifytime, defbizposid, userassobject, email)

values (null, null, 『1 『, 『0』, 『公司領導』, 『』||v_domainid||』』, 0, null, 『』, 『96nir3fsiyesvnejulxb6lr3/bs=』, 『1,0,0』,

null, null, 『01-3月 -19 04.04.29.250416 下午』, 『0』, 0, null, 『』||v_userid||』』, null,

『748fedee-5384-4e09-a4ad-960d1510b3e6』, null, null, 『111111111111111111111111』, 『1111111』, 『』||v_ddh||』』, null, null,

『0』, 『public』, null, null, 『0』, 『0』, 『0』, 『01-3月 -19 05.09.55.533000 下午』, null, 0, null);

fetch c_cursor into v_dwbh, v_dwmc;
end loop;

– 關閉游標

close c_cursor;

end;

游標的使用,看到的一段解釋很好的概念,如下:

游標是sql的乙個記憶體工作區,由系統或使用者以變數的形式定義。游標的作用就是用於臨時儲存從資料庫中提取的資料塊。在某些情況下,需要把資料從存放

在磁碟的表中調到計算機記憶體中進行處理,最後將處理結果顯示出來或最終寫回資料庫。這樣資料處理的速度才會提高,否則頻繁的磁碟資料交換會降低效率。

游標有兩種型別:顯式游標和隱式游標。在前述程式中用到的select…into…查詢語句,一次只能從資料庫中提取一行資料,對於這種形式的查詢和dml操作,

系統都會使用乙個隱式游標。但是如果要提取多行資料,就要由程式設計師定義乙個顯式游標,並通過與游標有關的語句進行處理。顯式游標對應乙個返回結果為多

行多列的select語句。

游標一旦開啟,資料就從資料庫中傳送到游標變數中,然後應用程式再從游標變數中分解出需要的資料,並進行處理。

在我們進行insert、update、delete和select value into variable 的操作中,使用的是隱式游標

隱式游標的屬性 返回值型別意義

sql%rowcount 整型 代表dml語句成功執行的資料行數

sql%found 布林型 值為true代表插入、刪除、更新或單行查詢操作成功

sql%notfound 布林型 與sql%found屬性返回值相反

sql%isopen 布林型 dml執行過程中為真,結束後為假

MS SQL入門基礎 游標 游標的優點和種類

本章前半部分提供了在ms sql server 中應用游標所應具有的有關游標的必要知識和各種語法。從中讀者可以了解游標的優點 種類 作用 學會如何定義 開啟 訪問 關閉 釋放游標以及游標的應用。除此之外,在本章的後半部分我們介紹了檢視和使用者自定義函式,使讀者了解檢視的眾多優點,比如簡化操作 提高資...

ORACLE SQL優化 入門

聽了王海波老師的課後的筆記 1.sql優化需要什麼?select from t1 where t1.x 2.為什麼建索引可以優化 建立索引以後,oracle就有兩個選擇,當選擇了更優秀的路徑去執行,這個過程就叫做優化。3.什麼是訪問路徑 訪問路徑是用於從行源檢索行的一種技術 1 table acce...

MS SQL入門基礎 讀取游標中的資料

當游標被成功開啟以後,就可以從游標中逐行地讀取資料,以進行相關處理。從游標中讀取資料主要使用fetch 命令。其語法規則為 各引數含義說明如下 next 返回結果集中當前行的下一行,並增加當前行數為返回行行數。如果fetch next是第一次讀取游標中資料,則返回結果集中的是第一行而不是第二行。pr...