编译后,用show error命令列出详细信息

解决方案 »

  1.   

    游标要有参数:CURSOR PcCur(p_date varchar2) IS SELECT * FROM pc_117 where PC_NO=PcNo AND to_char(STOREDATE,'yyyymmdd')=p_date;
    begin
    OPEN PcCur(UpdateDate);
    ......
      

  2.   

    太感谢以上两位朋友,现在出现的错误提示是:37/1     PLS-00103: 出现符号 "END"在需要下列之一时:
             begindeclareexitforgotoif
             loopmodnullpragmaraisereturnselectupdatewhile<an identifier>
             <a double-quoted delimited-identifier><a bind variable><<
             closecurrentdeletefetchlockinsertopenrollbacksavepointsetsql
             executecommitforall<a single-quoted SQL string>43/36    PLS-00103: 出现符号 "="在需要下列之一时:
             .(,*@%&-+;/atmodremreturn
             returning<an exponent (**)>where||
             符号 ".在 "=" 继续之前已插入。LINE/COL ERROR哪里的问题
      

  3.   

    sorry 看漏了眼,还要多加一个参数.CURSOR PcCur(p_pcno varchar2,p_date varchar2) IS SELECT * FROM pc_117 where PC_NO=p_pcno AND to_char(STOREDATE,'yyyymmdd')=p_date;
    begin
    OPEN PcCur(PcNo,UpdateDate);
    .......
      

  4.   

    beckhambobo:
    请问,你设的p_pcno,p_date 这两个字段和PcNo,UpdateDate是同一个字段吗,是你手误,还是需要另设这样。
      

  5.   

    我按上面的都改完了,出错提示为:
    LINE/COL ERROR
    -------- -----------------------------------------------------------------
    34/17    PLS-00103: 出现符号 "VARCHAR2"在需要下列之一时:
             .(),*@%&|=-+</>atinmod
             notrangerem=>..<an exponent (**)><> or != or ~=>=<=<>andor
             likeasbetweenfromusingis nullis not||is dangling34/46    PLS-00103: 出现符号 ";"在需要下列之一时:
             return37/1     PLS-00103: 出现符号 "END"在需要下列之一时:
             begindeclareexitforgotoif
             loopmodnullpragmaraisereturnselectupdatewhile<an identifier>LINE/COL ERROR
    -------- -----------------------------------------------------------------
             <a double-quoted delimited-identifier><a bind variable><<
             closecurrentdeletefetchlockinsertopenrollbacksavepointsetsql
             executecommitforall<a single-quoted SQL string>如何解决?
      

  6.   

    请先参考以下例子,问题出在你语句上:create or replace procedure pc_117proce2(
    p_holid in varchar2,p_holname in varchar2
    )
    as
    cURSOR PcCur(v_holid varchar2,v_holname varchar2) IS 
    SELECT holname FROM holiday where holid=v_holid AND holname=v_holname;
    pcrec varchar(20);
    BEGIN
    OPEN PcCur(p_holid,p_holname);
    FETCH PcCur INTO PcRec;
    CLOSE PcCur;
    dbms_output.put_line(pcrec);
    END pc_117proce2;
    /SQL> set serveroutput on
    SQL> begin
      2   pc_117proce2('1','公出');
      3  end;
      4  /
    公出请细心考虑代码出错在那吧!
      

  7.   

    34/17    PLS-00103: 出现符号 "VARCHAR2"在需要下列之一时:
             .(),*@%&|=-+</>atinmod
             notrangerem=>..<an exponent (**)><> or != or ~=>=<=<>andor
             likeasbetweenfromusingis nullis not||is dangling34行是 OPEN PcCur(PcNo varchar2,UpdateDate varchar2);请问是怎么回事
      

  8.   

    没有看我的代码吗?
    打开游标时参数不能有类型定义.改为如下:
    OPEN PcCur(PcNo,UpdateDate);