PL / SQL:语句被忽略

时间:2014-03-31 13:33:22

标签: oracle plsql

我执行此程序时

create  procedure p2 is
         cursor c100 is select b.BNO,b.BNAME,b.PUBNAME,b.PRICE
        from book b,author a, bo_aut ba
        where b.BNO=ba.BNO
        and a.ANO=ba.ANO
        and a.ANAME='kanetkar';
   begin
        for x in c100
    loop
        dbms_output.put_line(x.BNO||'     '||x.BNAME||'     '||x.PUBNAME||'      '||x.PRICE);
     end loop;
   end;
/

GOT THIS ERROR

  

第10行的错误:PL / SQL:语句被忽略
  1.创建程序p2是
  2.光标c100选择b.BNO,b.BNAME,b.PUBNAME,b.PRICE
  3.从书b,作者a,bo_aut ba

2 个答案:

答案 0 :(得分:1)

您的SQL语句出错(所以select ...部分)。

如果没有架构,我们无法确定原因,但尝试运行查询本身并找出问题所在。

答案 1 :(得分:0)

光标中的查询一定有错误。我已经将一个等效过程的基本示例与一个有效的查询放在一起:

create or replace procedure p2 is

   cursor c100 is 
      select 'a1' as BNO, 'b1' as BNAME, 'c1' as PUBNAME, 'd1' as PRICE
        from dual
      union 
      select 'a2' as BNO, 'b2' as BNAME, 'c2' as PUBNAME, 'd2' as PRICE
        from dual;

begin
   for x in c100 loop
      dbms_output.put_line(x.BNO||'     '||x.BNAME||'     '||x.PUBNAME||'      '||x.PRICE);
   end loop;
end;

从这里我得到了预期的输出:

a1     b1     c1      d1
a2     b2     c2      d2

我建议单独运行SQL进行调试。