--SQL遊標
--遊標:是指向上下文區的指針
/**//*
1 隱含遊標
隱含遊標又稱SQL遊標,專門用於處理SELECT INTO,INSERT,UPDATE及DELETE語句,當在PL/SQL中執行
INSERT,UPDATE及DELETE時,爲取得DML語句作用的結果,必須要使用SQL遊標屬性,SQL遊標包括sql%found,
sql%notfound,sql%rowcount,sql%isopen四個屬性。
(1)sql%isopen 用日元確定SQL遊標是否已經打開,當執行SELECT INTO,INSERT,UPDATE及DELETE語句時會隱
含打開遊標,並且在執行完成後隱含關閉遊標。所以對於開發人員該屬性永遠爲false,不需要使用該屬性。
(2)sql%found/sql%notfound 用於確定SQL語句執行是否成功。
SQL語句執行是否成功根據是否有作用來判斷,當SQL語句有作用時,sql%found屬性值爲TRUE(sql%notfound屬性值爲FALSE);否則反之。*/
declare
v_name user_info.name%type := 'junly';
begin
update user_info set money = money*1.1
where name=v_name;
if sql%found then
dbms_output.put_line('語句執行成功');
else
dbms_output.put_line('用戶名不存在');
end if;
end;
-- (3)sql%rowcount 返回SQL語句作用的總計行數
declare
v_name user_info.name%type := 'junly';
begin
update user_info set money = money*1.1
where name=v_name;
dbms_output.put_line('修改了'||sql%rowcount||'行');
end;
/**//*2 顯式遊標
用於處理SELECT語句
*/
--遊標:是指向上下文區的指針
/**//*
1 隱含遊標
隱含遊標又稱SQL遊標,專門用於處理SELECT INTO,INSERT,UPDATE及DELETE語句,當在PL/SQL中執行
INSERT,UPDATE及DELETE時,爲取得DML語句作用的結果,必須要使用SQL遊標屬性,SQL遊標包括sql%found,
sql%notfound,sql%rowcount,sql%isopen四個屬性。
(1)sql%isopen 用日元確定SQL遊標是否已經打開,當執行SELECT INTO,INSERT,UPDATE及DELETE語句時會隱
含打開遊標,並且在執行完成後隱含關閉遊標。所以對於開發人員該屬性永遠爲false,不需要使用該屬性。
(2)sql%found/sql%notfound 用於確定SQL語句執行是否成功。
SQL語句執行是否成功根據是否有作用來判斷,當SQL語句有作用時,sql%found屬性值爲TRUE(sql%notfound屬性值爲FALSE);否則反之。*/
declare
v_name user_info.name%type := 'junly';
begin
update user_info set money = money*1.1
where name=v_name;
if sql%found then
dbms_output.put_line('語句執行成功');
else
dbms_output.put_line('用戶名不存在');
end if;
end;
-- (3)sql%rowcount 返回SQL語句作用的總計行數
declare
v_name user_info.name%type := 'junly';
begin
update user_info set money = money*1.1
where name=v_name;
dbms_output.put_line('修改了'||sql%rowcount||'行');
end;
/**//*2 顯式遊標
用於處理SELECT語句
*/