【PL/SQL 學習】隱式遊標學習
--oracle 會為每一個非顯示遊標的sql dml 語句都建立一個隱式遊標,隱式遊標也稱為sql 遊標。與顯示遊標不同,不能對一個隱式遊標執行open,close和fetch語句。oracle 隱式的開啟sql遊標,處理sql遊標,然後再關閉該遊標。
declare
vid t.object_id%type;
vowner t.owner%type;
begin
select object_id ,owner into vid,vowner from t where rownum <2;
if sql%isopen then
dbms_output.put_line('it is not possiable');
else
dbms_output.put_line('vid is '||vid||' vowner is '||vowner);
dbms_output.put_line('%isopen 的屬性為false');
end if;
end;
輸出為:
vid is 1 vowner is SYS
%isopen 的屬性為false
--和顯示遊標一樣,隱式遊標也有四大屬性%FOUND,%ISOPEN,%NOTFOUND,%ROWCOUNT.由於隱式遊標沒有名次,oracle提供了一種方法在屬性前面加 關鍵字 SQL,這樣我們就可以使用這些屬性了。
例子如下:
declare
vid t.object_id%type;
vowner t.owner%type;
rowsnum integer;
begin
select object_id ,owner into vid,vowner from t where rownum <2;
rowsnum := sql%rowcount;
dbms_output.put_line('vid is '||vid||' vowner is '||vowner);
dbms_output.put_line('rowsnum is '||rowsnum);
if sql%found then
dbms_output.put_line('sql%found is true;');
else
dbms_output.put_line('sql%found is false;');
end if;
if sql%notfound then
dbms_output.put_line('sql%notfound is true;');
else
dbms_output.put_line('sql%notfound is false;');
end if;
end;
輸出為:
vid is 1 vowner is SYS
rowsnum is 1
sql%found is true;
sql%notfound is false;
declare
vid t.object_id%type;
vowner t.owner%type;
begin
select object_id ,owner into vid,vowner from t where rownum <2;
if sql%isopen then
dbms_output.put_line('it is not possiable');
else
dbms_output.put_line('vid is '||vid||' vowner is '||vowner);
dbms_output.put_line('%isopen 的屬性為false');
end if;
end;
輸出為:
vid is 1 vowner is SYS
%isopen 的屬性為false
--和顯示遊標一樣,隱式遊標也有四大屬性%FOUND,%ISOPEN,%NOTFOUND,%ROWCOUNT.由於隱式遊標沒有名次,oracle提供了一種方法在屬性前面加 關鍵字 SQL,這樣我們就可以使用這些屬性了。
例子如下:
declare
vid t.object_id%type;
vowner t.owner%type;
rowsnum integer;
begin
select object_id ,owner into vid,vowner from t where rownum <2;
rowsnum := sql%rowcount;
dbms_output.put_line('vid is '||vid||' vowner is '||vowner);
dbms_output.put_line('rowsnum is '||rowsnum);
if sql%found then
dbms_output.put_line('sql%found is true;');
else
dbms_output.put_line('sql%found is false;');
end if;
if sql%notfound then
dbms_output.put_line('sql%notfound is true;');
else
dbms_output.put_line('sql%notfound is false;');
end if;
end;
輸出為:
vid is 1 vowner is SYS
rowsnum is 1
sql%found is true;
sql%notfound is false;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-687917/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PL/SQL 遊標SQL
- oracle學習筆記(十七) PL/SQL高階應用Oracle筆記SQL
- oracle學習筆記(十五) PL/SQL語法結構以及使用Oracle筆記SQL
- SQL學習SQL
- SQL 學習SQL
- Oralce之PL/SQL程式設計(遊標)SQL程式設計
- 【學習】SQL基礎-004-函式SQL函式
- pl/sql developer中關於TIMESTAMP顯示格式的疑問和學習SQLDeveloper
- 6.4. PL/SQL語法——6.4.6. 遊標SQL
- OCP 複習筆記之PL/SQL (1)筆記SQL
- OCP 複習筆記之PL/SQL (3)筆記SQL
- OCP 複習筆記之PL/SQL (2)筆記SQL
- OCP 複習筆記之PL/SQL (4)筆記SQL
- OCP 複習筆記之PL/SQL (5)筆記SQL
- SQL學習筆記SQL筆記
- SQL 語句學習SQL
- spark RDD的學習,filter函式的學習,split函式的學習SparkFilter函式
- Spark SQL學習——UDF、UDAF和開窗函式SparkSQL函式
- pl/sql中三種遊標迴圈效率對比SQL
- 函式學習函式
- 測試學習SQL篇SQL
- SQL學習___01:基礎SQL
- 深度學習——loss函式的學習筆記深度學習函式筆記
- 資料庫學習筆記——20 使用遊標資料庫筆記
- 2019年學習目標
- 智慧指標用法學習指標
- git學習——打標籤Git
- 指標學習筆記指標筆記
- C標準庫學習
- 【機器學習】--隱語義模型機器學習模型
- Spark SQL學習——DataFrame和DataSetSparkSQL
- spark學習筆記--Spark SQLSpark筆記SQL
- sql語句學習總結SQL
- 《SQL 反模式》 學習筆記SQL模式筆記
- SQL SERVER 學習過程(一)SQLServer
- SQL學習___03:DML語法SQL
- 函式學習五函式
- 函式學習二函式
- 函式學習四函式