SQL程式設計 01 游標介紹

2022-06-30 09:09:08 字數 2299 閱讀 1228

游標的使用步驟

游標的分類:

1、隱式游標

系統幫我們定義好的游標。注意一句話,每當我們執行乙個dml語句,系統就會自動幫助我們建立隱式游標。

例如,將孫麗的**號碼修改為 13818882888。
begin

update person.person set phone=13818882888 where name='孫麗';

if sql%notfound then

print '此人不存在';

else

print '已修改';

end if;

end;

/

2、顯式游標

我們自己定義的游標。

--靜態顯式游標:

declare

c1 cursor is select *from test;

v_id

intdefault 0;

v_name varchar(50) default null

;begin

open c1;

repeat

fetch next c1 into v_id, v_name;

dbms_output.put(v_id);

dbms_output.put(v_name);

until c1%notfound;

close c1;

end;

--靜態顯式游標:

declare

c1 cursor

return sysdba.test%rowtype is select *from sysdba.test; --這個游標在定義的時候指定了返回值型別必須是sysdba.test%rowtype

v_test sysdba.test%rowtype; --這裡定義了乙個變數,變數的資料型別式sysdba.test%rowtype;

begin

open c1;

repeat

fetch next c1 into v_test; --游標從查詢表示式select * from test取出來的值,是和v_test的資料型別一致的,所以可以賦值給v_test

print v_test.id;

print v_test.name;

until c1%notfound;

close c1;

end;

區別不大,就兩點區別,分別在定義游標和開啟游標上。

將游標作為乙個變數,這裡的游標是乙個變數,什麼意思呢?就是說他可以指向不同的查詢表示式的記憶體區域位址(當時相同時間下是只能指向乙個的)

游標變數和游標的區別主要是1.定義語法不同 2.open游標時才給游標賦值,如紅色所示:

--游標變數:

declare

type c1_cursor_type is ref cursor

return sysdba.test%

rowtype;

c1 c1_cursor_type;

v_test sysdba.test%rowtype;

begin

open c1

for select *

from test;

repeat

fetch next c1 into v_test;

dbms_output.put(v_test);

until c1%notfound;

close c1;

end;

--游標變數:

declare

type test_record is record(id test.id%type, name test.name%type);

v_test test_record;

type c1_cursor_type is ref cursor

return

test_record;

c1 c1_cursor_type;

begin

open c1

for select *from test;

repeat

fetch next c1 into v_test;

print v_test.id;

until c1%notfound;

close c1;

end;

SQL游標的介紹與使用舉例

declare 游標名 insensitive scroll cursor for select statement for 1 當指定insensitive時,系統將建立游標指向的表的臨時副本,後續游標的所有操作將針對該副本 tempdb 進行,也就是說,不會對基表進行修改 事實上使用insens...

01 socket程式設計 OSI介紹

1.物理層 物理層的任務就是為它的上一層提供物理連線,以及規定通訊節點之間的機械和電器特徵,如規定電纜和接頭的型別,床送訊號的電壓。在這一層,資料作為原始的位元 bit 流傳輸。本層的典型裝置是集線器。2.資料鏈路層 資料鏈路層負責在兩個相鄰節點間的路線上,無差錯的傳送以幀為單位的資料。資料鏈路層要...

DAY01 程式語言介紹

程式設計 寫 程式 軟體。程式設計的目的是 讓機器 比如計算機 按照人們事先為其編寫好的程式自發地去工作。機器語言是用二進位制 表示的計算機能直接識別和執行的一種機器指令的集合。優點 靈活 直接執行和速度快。缺點 不同型號的計算機其機器語言是不相通的,按著一種計算機的機器指令編制的程式,不能在另一種...