怎么使用PostgreSQL游标

54次阅读
没有评论

共计 2027 个字符,预计需要花费 6 分钟才能阅读完成。

这篇文章主要介绍“怎么使用 PostgreSQL 游标”,在日常操作中,相信很多人在怎么使用 PostgreSQL 游标问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用 PostgreSQL 游标”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

一、说明

游标字面理解就是游动的光标。

用数据库语言来描述:游标是映射在结果集中一行数据上的位置实体,有了游标用户就可以访问结果集中的任意一行数据了,将游标放置到某行后,即可对该行数据进行操作,例如提取当前行的数据等等。

二、分类

显式游标

用 CURSOR…IS 命令定义的游标,它可以对查询语句 (SELECT) 返回的多条记录进行处理。

隐式游标

是在执行插入 (INSERT)、删除(DELETE)、修改(UPDATE) 和返回单条记录的查询 (SELECT) 语句时有 PL/SQL 自动定义的。

三、属性

Oracle 游标有 4 个属性:%ISOPEN,%FOUND,%NOTFOUND,%ROWCOUNT

%ISOPEN 判断游标是否被打开,如果打开 %ISOPEN 等于 true, 否则等于 false

%FOUND %NOTFOUND 判断游标所在的行是否有效,如果有效,则 %FOUNDD 等于 true,否则等于 false

%ROWCOUNT 返回当前位置为止游标读取的记录行数。

四、使用

声明游标

CURSOR emp_info(vartype number) is select * from emp;

打开游标

open emp_info;

读取游标

fetch mycur into varno,varprice;

关闭游标

close emp_info;

五、显示游标遍历

方法一

DECLARE 
 V_EMP_INFO EMP%ROWTYPE; 
 CURSOR EMP_INFO IS 
 SELECT * FROM EMP; --1、声明游标  
BEGIN 
 OPEN EMP_INFO; --2、打开游标, 传递参数值  
 LOOP 
 FETCH EMP_INFO INTO V_EMP_INFO; --3、提取游标 fetch into 
 IF EMP_INFO%FOUND THEN 
 DBMS_OUTPUT.PUT_LINE(V_EMP_INFO.ENAME ||  的雇佣日期是  || 
 V_EMP_INFO.HIREDATE); 
 ELSE 
 DBMS_OUTPUT.PUT_LINE( 已经处理完结果集了  
 EXIT; 
 END IF; 
 END LOOP; 
 CLOSE EMP_INFO; --4、关闭游标  
END;

方法二

DECLARE 
 V_EMP_INFO EMP%ROWTYPE; 
 CURSOR EMP_INFO IS 
 SELECT * FROM EMP; --1、声明游标  
BEGIN 
 OPEN EMP_INFO; --2、打开游标, 传递参数值  
 LOOP 
 FETCH EMP_INFO INTO V_EMP_INFO; --3、提取游标 fetch into 
 EXIT WHEN EMP_INFO%NOTFOUND; 
 DBMS_OUTPUT.PUT_LINE(V_EMP_INFO.ENAME ||  的雇佣日期是  || 
 V_EMP_INFO.HIREDATE); 
 END LOOP; 
 DBMS_OUTPUT.PUT_LINE( 已经处理完结果集了  
 CLOSE EMP_INFO; --4、关闭游标  
/

方法三

DECLARE 
 V_EMP_INFO EMP%ROWTYPE; 
 CURSOR EMP_INFO IS 
 SELECT * FROM EMP; --1、声明游标  
BEGIN 
 FOR V_EMP_INFO IN EMP_INFO LOOP 
 DBMS_OUTPUT.PUT_LINE(V_EMP_INFO.ENAME ||  的雇佣日期是  || 
 V_EMP_INFO.HIREDATE); 
 END LOOP; 
 DBMS_OUTPUT.PUT_LINE( 已经处理完结果集了  
END; 
/

六、隐式游标处理

DECLARE 
 V_EMP_INFO EMP%ROWTYPE; 
BEGIN 
 SELECT * INTO V_EMP_INFO FROM EMP WHERE ename= SMITH  
 IF SQL%FOUND THEN 
 DBMS_OUTPUT.PUT_LINE(V_EMP_INFO.ENAME ||  的雇佣日期是  || 
 V_EMP_INFO.HIREDATE); 
 END IF; 
 DBMS_OUTPUT.PUT_LINE( 已经处理完结果集了  
END; 
/

到此,关于“怎么使用 PostgreSQL 游标”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-26发表,共计2027字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)