奇怪的PL/SQL错误 - PLS-00103

the*_*ist 3 oracle plsql

我已经在SQL开发人员中长时间得到了一个相当奇怪的错误..我已经将我的包剥离到最基本并运行变量声明..甚至那就是抛出一个错误..这就是我正在执行的:

create or replace package body cdbmeta.pkg_metadata_check 
is
 procedure p_metadata_check(unit_id_start in number, unit_id_end in number)
   is
    begin      
     start_date NUMBER(10);
     dbms_output.put_line('..');     
    end;
end;
Run Code Online (Sandbox Code Playgroud)

和我的错误消息说:

PLS-00103:遇到以下其中一项时遇到符号"NUMBER":: =.(@%;符号":="代替"NUMBER"继续.

完全无能......以前有人这个吗?

小智 5

你必须在"is"之后和"begin"之前定义变量,如下所示:

create or replace package body cdbmeta.pkg_metadata_check 
is
 procedure p_metadata_check(unit_id_start in number, unit_id_end in number)
   is
     start_date NUMBER(10);
    begin      
     dbms_output.put_line('..');     
    end;
end;
/
Run Code Online (Sandbox Code Playgroud)

在开始之前和开始之前的过程定义中的块与您将使用匿名块一样,如下所示:

 declare
   start_date NUMBER(10);
 begin      
   dbms_output.put_line('..');     
 end;
 /
Run Code Online (Sandbox Code Playgroud)