创建PL / SQL过程时出错

时间:2016-10-20 08:26:24

标签: oracle plsql

我正在尝试使用PL / SQL创建下面的过程,但它在过程名称上显示一个红叉,但没有显示错误,所以任何人都可以告诉我该代码有什么问题

create or replace procedure CREATE_DM_CLIENT(
  V_C_ID   VARCHAR2,
  V_S_ID   VARCHAR2,
  V_A_ID   VARCHAR2,
  V_J      IN  VARCHAR2,
  V_H      IN  VARCHAR2,
  V_COM    IN  VARCHAR2,
  V_COD    OUT VARCHAR2)
is
  code_erreur number;
  lib_erreur  varchar(200) ;
  num         number := 0;
BEGIN
  SELECT SEQ_DEM.NEXTVAL  
    INTO NUM  
    FROM  DUAL;
  INSERT  INTO DM_CLIENTS(DM_C_ID, C_ID, S_ID, A, J, H, D_S, C)
     VALUES(num, V_C_ID, V_S_ID, V_A_ID, V_J, V_H, SYSDATE, V_C);
  --update  num_client   set etat=1  where num=V_CLIENT_ID;
  commit;
  V_COD:='100';
EXCEPTION
   WHEN OTHERS THEN
         l_e := SQLERRM ;
         C_L := SQLCODE ;
         insert into l_table (ligne , module) 
           values ( to_char(CODE_ERREUR)||LIB_ERREUR  , 
                    'CREATE_DM_CLIENT' ) ;
         commit;
         V_CODEREP:='109';
end  create_dm_client;

3 个答案:

答案 0 :(得分:1)

Compilation errors for PROCEDURE SAC.CREATE_DM_CLIENT

Error: PLS-00201: identifier 'L_E' must be declared
Line: 33
Text: l_e := SQLERRM;

Error: PL/SQL: Statement ignored
Line: 33
Text: l_e := SQLERRM;

Error: PLS-00201: identifier 'C_L' must be declared
Line: 34
Text: C_L := SQLCODE;

Error: PL/SQL: Statement ignored
Line: 34
Text: C_L := SQLCODE;

Error: PLS-00201: identifier 'V_CODEREP' must be declared
Line: 40
Text: V_CODEREP := '109';

Error: PL/SQL: Statement ignored
Line: 40
Text: V_CODEREP := '109';

我没有提到的其他错误,是因为我没有表名和序列。

答案 1 :(得分:1)

未声明3个提到的变量。

...
is
  v_coderep   varchar2(3);
  c_l         varchar2(3)
  l_e         varchar2(1024);

...

答案 2 :(得分:0)

请在变量声明部分中定义l_e,C_L和V_CODEREP变量。例如 -

  l_e         varchar(20);
  C_L         integer;
  V_CODEREP   varchar(3);