SQL> CREATE OR REPLACE PROCEDURE delete_register
  2  IS
  3  first_id number;
  4  --p_id register.id%type;
  5  --CURSOR first_cursor IS SELECT id FROM register
  6  -- WHERE id=p_id;
  7  BEGIN
  8  --OPEN first_cursor;
  9  --FETCH first_cursor INTO first_id;
 10  --SELECT id INTO first_id FROM register WHERE id=10;
 11  SELECT id INTO first_id FROM register WHERE ROWNUM=1;
 12  DELETE FROM register WHERE id=first_id;
 13  --CLOSE first_cursor;
 14  --COMMIT;
 15  END delete_register;
 16  /过程已创建。SQL> 
SQL> call delete_register;
call delete_register
     *
第 1 行出现错误:
ORA-06576: 不是有效的函数或过程名
谢谢大家。

解决方案 »

  1.   

    -- 将 call 修改为 exectdods@TDODS> call PRO_GET_TABLE_INCREMENT;
    call PRO_GET_TABLE_INCREMENT
         *
    ERROR at line 1:
    ORA-06576: not a valid function or procedure name
    Elapsed: 00:00:00.17
    tdods@TDODS> exec PRO_GET_TABLE_INCREMENT;PL/SQL procedure successfully completed.Elapsed: 00:00:04.38
      

  2.   


    SQL> call delete_register;call delete_registerORA-06576: 不是有效的函数或过程名SQL> call delete_register();Method calledSQL> 
      

  3.   

    call delete_register();
    exec delete_register;
      

  4.   

    call 是在命令行中执行;exec 可以在普通窗口执行