--
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语句
*/