首页 > 数据库 > 国内数据库 > PLSQL基于游标的记录写法
在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/ ,如需转载,请注明出处,否则将追究法律责任。