- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PLSQL中游标
PL/SQL中的游标 游标的概念 在 PL/SQL 程序中,对于处理多行记录的事务经常使用游标来实现。 为了处理 SQL 语句,ORACLE 必须分配一片叫上下文( context area )的区域来处理所必需的信息,其中包括要处理的行的数目,一个指向语句被分析以后的表示形式的指针以及查询的活动集(active set)。 游标是一个指向上下文的句柄( handle)或指针。通过游标,PL/SQL可以控制上下文区和处理语句时上下文区会发生些什么事情。 游标的概念 显式游标 处理显式游标需要四个 PL/SQL步骤: 显式游标 处理显式游标需要四个 PL/SQL步骤: 显式游标 处理显式游标需要四个 PL/SQL步骤: 显式游标 处理显式游标需要四个 PL/SQL步骤: 显式游标 参数化游标 游标属性 游标属性 游标属性 游标属性 游标属性 处理隐式游标 隐式游标属性 处理隐式游标 游标检索循环 游标的FOR循环 游标的FOR循环 游标的FOR循环 游标的FOR循环 NO_DATA_FOUND 和 %NOTFOUND的区别 SELECT FOR UPDATE 游标 SELECT FOR UPDATE 游标 SELECT FOR UPDATE 游标 游标变量 声明游标变量 声明游标变量 游标变量操作 游标变量操作 游标变量操作 游标变量应用举例 游标变量应用举例 游标变量应用举例 游标变量应用举例 与游标一样,游标变量操作也包括打开、提取和关闭三个步骤 提取游标变量数据 : 使用FETCH语句提取游标变量结果集合中的数据。格式为: FETCH {cursor_variable_name | :host_cursor_variable_name} INTO {variable [, variable]…| record_variable}; 其中:cursor_variable_name和host_cursor_variable_name分别为游标变量和宿主游标变量名称;variable和record_variable分别为普通变量和记录变量名称。 衬财娠闺瓶钧仕薛章自受劣恐撬涝女受板热陷痕阐撩拦蚂沏蕴教找哀洪俊PLSQL中游标PLSQL中游标 与游标一样,游标变量操作也包括打开、提取和关闭三个步骤 关闭游标变量 : CLOSE语句关闭游标变量,格式为: CLOSE {cursor_variable_name | :host_cursor_variable_name} 其中:cursor_variable_name和host_cursor_variable_name分别为游标变量和宿主游标变量名称,如果应用程序试图关闭一个未打开的游标变量,则将导致INVALID_CURSOR异常错误。 洗护廓卵屏剑铺矗犊百钻勾徽熄厘课功返衬蚜茎墩稻游傈曾侮胞砖万矫达PLSQL中游标PLSQL中游标 例:强类型参照游标变量类型 DECLARE TYPE emp_job_rec IS RECORD( Employee_id emp.empno%TYPE, Employee_name emp.ename%TYPE, Job_title emp.job%TYPE); TYPE emp_job_refcur_type IS REF CURSOR RETURN emp_job_rec; Emp_refcur emp_job_refcur_type ; Emp_job emp_job_rec; 逐涎霍珠棉壶枢颤驶适刑趟钡过牲褒站燃哪赣爱连农唤遍袱宿蔽盗忙牲笛PLSQL中游标PLSQL中游标 例:BEGIN OPEN emp_refcur FOR SELECT empno, ename, job FROM emp ORDER BY deptno; FETCH emp_refcur INTO emp_job; WHILE emp_refcur%FOUND LOOP DBMS_OUTPUT.PUT_LINE(emp_job.employee_id||’: ‘||emp_job.employee_name||‘ is a ’||emp_job.job_title); FETCH emp_refcur INTO emp_job; END LOOP; END; 珊桌碴禄箔肋白赠争烛锡患滑栋盈应傍煤带垢槛种姑抡猎粹昂屋邹缠杉亏PLSQL中游标PLSQL中游标 例:弱类型参照游标变量类型 DECLARE Type refcur_t IS REF CURSOR; Refcur refcur_t; TYPE sample_rec_type
文档评论(0)