ITPub博客

首页 > 数据库 > 国内数据库 > PLSQL基于游标的记录写法

PLSQL基于游标的记录写法

原创 国内数据库 作者:yanhengdoudou 时间:2020-03-25 15:11:26 0 删除 编辑

         在PL/SQL 中,有时候我们会用到基于游标的记录,而在使用这个方法的时候,有一个需要特别注意的点就是:对于基于游标的记录,必须要在游标声明之后才能声明它,否则就会发生语法错误。

         如下图所示,我有一张EMP 表,表中数据如下:

        

         我想通过存储过程来查询出工资(SAL 列)大于3000 的员工姓名,那么在使用基于游标的记录的时候,正确的写法应该如下:

         Create Or Replace Procedure Jilu_03

As

Declare Cursor Emp_Cur01 Is

Select *

           From "EMP"

           Where Sal>3000 ;   --- 声明游标

    Ename_rec Emp_Cur01%RowType ; ---- 声明变量       

Begin

    Open Emp_Cur01 ;

           Loop

           Fetch Emp_Cur01 Into Ename_rec ;

           Exit When Emp_Cur01%NotFound ;

           Print ( ' 员工是 ' ||Ename_rec . Ename );

           End Loop ;

End ;

         此时程序运行结果如下图:

         如果是先声明基于游标的记录,例如下面的语句:

         Create Or Replace Procedure Jilu_04

As

Declare Ename_rec Emp_Cur01%RowType ; --- 声明记录

Cursor Emp_Cur01 Is

Select *

           From "EMP"

           Where Sal>3000 ; --- 声明游标

          

Begin

    Open Emp_Cur01 ;

           Loop

           Fetch Emp_Cur01 Into Ename_rec ;

           Exit When Emp_Cur01%NotFound ;

           Print ( ' 员工是 ' ||Ename_rec . Ename );

           End Loop ;

End ;

         此时编译的时候会直接报错,报错信息如下:

 

         因此,关于基于游标的记录的使用,声明的顺序不能更改。

 

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69949798/viewspace-2681320/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 再谈记录超长
请登录后发表评论 登录
全部评论

注册时间:2019-09-29

  • 博文量
    70
  • 访问量
    193340