【问题标题】:Oracle Procedure compile errorOracle 过程编译错误
【发布时间】:2016-05-31 08:30:49
【问题描述】:

下面是我的程序。

create or replace procedure my_log (action in varchar2, message in varchar2 )
is

begin
  Insert into my_log_table (ACTION, MESSAGE, EVENT_DATE)
  values (action, message, sysdate);
  commit;
end;
/
CREATE OR REPLACE PROCEDURE "CUSTOMER_INCREMENTAL" ()
IS   
   err_num NUMBER;
   err_msg VARCHAR2(4000);
BEGIN
    my_log ('Start','My message');
  INSERT INTO NDB_AML_CUSTOMER 
(ID, TITLE,...)
  SELECT ID, TITLE,... 
FROM NDB_CUSTOMER_NEW
WHERE DATE_TIME > (SELECT RUN_DATE FROM CHECK_POINT WHERE TABLE_NAME = 'NDB_CUSTOMER_NEW');

  UPDATE CHECK_POINT SET RUN_DATE = SYSDATE WHERE TABLE_NAME = 'NDB_CUSTOMER_NEW';

  COMMIT;
  my_log ('End','My message');
  EXCEPTION
  WHEN OTHERS THEN
err_num := SQLCODE;
err_msg := SQLERRM;
my_log ('Error' , errnum ||' - ' || err_msg);
 END;
/

当我编译它时,它会给出错误 PLS-00103: Encountered the symbol ")" 当期望以下之一时:当前删除之前存在。有什么建议么?

【问题讨论】:

    标签: oracle procedure


    【解决方案1】:

    如果函数或过程没有参数,则不需要()

    【讨论】:

    • 没有括号它编译但在执行期间它告诉客户增量必须声明
    • 执行客户增量();
    • 我执行了 CUSTOMER_INCREMENTAL 但它告诉 PLS-00201:必须声明标识符 'CUSTOMER_INCREMENTAL'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多