㈠ Oracle存儲過程和游標操作
sql">--第一個題目,我的表叫stu,你別忘了改成你的表名
createorreplaceprocerepro7
as
cursorc_emp1isselectename,salfromstu;
venamestu.ename%type;
vsalstu.sal%type;
vnewsalstu.sal%type;
vfdnumber:=0;
begin
openc_emp1;
loop
fetchc_emp1intovename,vsal;
exitwhenc_emp1%notfound;
vfd:=vsal*0.2;
ifvfd<=300
thenupdatestusetsal=sal+vfdwhereename=vename;
vnewsal:=vsal+vfd;
dbms_output.put_line('員工'||vename||'漲了'||vnewsal||'工資');
endif;
endloop;
closec_emp1;
end;
㈡ oracle 存儲過程 游標
select isnull(a.姓名, b.姓名), a.手機號, isnull(a.身份證號, b.身份證號),isnull(a.住址, b.住址)
from 表1 a, 表2 b
where a.手機號=b.手機號
㈢ oracle怎樣用游標調用存儲過程
這個需要用程序包package來做。在包頭里定義入參為游標
createorreplace
PACKAGEpro_test
AS
TYPECURSOR_PAGEISREFCURSOR;
PROCEDUREinsert_one_teacher(
p_1INCURSOR_PAGE);
END;
後麵包體就不列了。
㈣ oracle存儲過程游標問題
--打開游標並提取後面SQL的第一行數據放到游標中 這里就是打開游標
open for 是隱式游標的寫法 不建議使用 這種游標好象不需要關閉 具體你自己測試下 而且少了expection 處理
fetch mycur into yang_02;
--循環插入數據
多餘了 可以不要 前面有fetch了如果還有這里的話 就只能插入奇數行
其他沒什麼問題了 還有你這個過程用ref cursor是浪費 沒必要用 用簡單的顯示游標更好點
㈤ oracle存儲過程游標有什麼用
1,什麼是游標?
①從表中檢索出結果集,從中每次指向一條記錄進行交互的機制。
②關系資料庫中的操作是在完整的行集合上執行的。
由SELECT 語句返回的行集合包括滿足該語句的WHERE 子句所列條件的所有行。由該語句返回完整的行集合叫做結果集。
應用程序,尤其是互動和在線應用程序,把完整的結果集作為一個單元處理並不總是有效的。
這些應用程序需要一種機制來一次處理一行或連續的幾行。而游標是對提供這一機制的結果集的擴展。
游標是通過游標庫來實現的。游標庫是常常作為資料庫系統或數據訪問API 的一部分而得以實現的軟體,
用來管理從數據源返回的數據的屬性(結果集)。這些屬性包括並發管理、在結果集中的位置、返回的行數,
以及是否能夠在結果集中向前和/或向後移動(可滾動性)。
游標跟蹤結果集中的位置,並允許對結果集逐行執行多個操作,在這個過程中可能返回至原始表,也可能不返回至原始表。
換句話說,游標從概念上講基於資料庫的表返回結果集。
由於它指示結果集中的當前位置 ,就像計算機屏幕上的游標指示當前位置一樣,「游標」由此得名。
㈥ oracle存儲過程中定義游標
放到begin裡面不要declare,在過程和函數裡面申明變數貌似不要declare,否則會報錯
㈦ oracle在存儲過程中定義游標
createorreplace
procerepro6
as
vempnoemp.empno%type;
venameemp.ename%type;
cursorc_empisselectempno,enamefromemp;
begin
openc_emp;
loop
fetchc_empintovempno,vename;
exitwhenc_emp%notfound;
dbms_output.put_line('編號:'||vempno||'姓名:'||vename);
endloop;
closec_emp;
end;