1

这是我的 pl/sql 程序:

 declare
   m_no      emp.emp_no%rowtype;
   m_name    emp.emp_name%rowtype;
   m_address emp.address%rowtype;
   cursor raju is 
     SELECT emp_no,
            emp_name,
            address 
       from emp;
 begin
   open raju;
   loop
     fetch raju 
      into m_no,
           m_name,
           m_address;
     dbms_output.put_line(m_no ||''||m_name||''||m_address);
     EXIT WHEN raju%notfound;
   end loop;
   close raju;
 end;

执行上述代码时出现错误

错误报告:
ORA-06550:第 2 行,第 6 列:
PLS-00310:带有 %ROWTYPE 属性,'EMP.EMP_NO' 必须命名一个表、游标或游标变量
ORA-06550:第 2 行,第 6 列:
PL/SQL :忽略项目
ORA-06550:第 3 行,第 8 列:
PLS-00310:具有 %ROWTYPE 属性,“EMP.EMP_NAME”必须命名一个表、游标或游标变量
ORA-06550:第 3 行,第 8 列:
PL/SQL :忽略项目
ORA-06550:第 4 行,第 11 列:
PLS-00310:具有 %ROWTYPE 属性,“EMP.ADDRESS”必须命名一个表、游标或游标变量
ORA-06550:第 4 行,第 11 列:
PL/SQL :项目被忽略
ORA-06550:第 10 行,第 18 列:
PLS-00320:此表达式的类型声明不完整或格式
错误 ORA-06550:第 10 行,第 2 列:
PL/SQL:SQL 语句被忽略
ORA-06550:第 11 行,第 23 列:
PLS-00320:声明此表达式的类型不完整或格式
错误 ORA-06550:第 11 行,第 2 列:
PL/SQL:语句被忽略
06550。00000 - “行 %s,列 %s:\n%s”
*原因:通常是 PL/ SQL 编译错误。
*行动:

但我没有得到它显示的位置和发生错误的位置。请任何人建议我。

4

1 回答 1

2

你的变量声明是错误的。

由于您分别选择和存储列,因此应使用%TYPE属性声明它。

m_no      emp.emp_no%type;
m_name    emp.emp_name%type;
m_address emp.address%type

如果您使用单个变量来存储所有列,则使用%ROWTYPE属性。

m_emp emp%rowtype
于 2013-09-16T08:02:24.057 回答