我正在尝试使用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;
答案 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);