2016-10-20 3 views
-2

Ich versuche, die Prozedur unten mit PL/SQL zu erstellen, aber es zeigt ein rotes Kreuz auf den Prozedurnamen, aber kein Fehler wurde angezeigt, so kann mir jemand sagen, was mit diesem Code falsch istFehler beim Erstellen von PL/SQL-Prozedur

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

Was ist der Fehler, den Sie erhalten, wenn Sie es ausführen? –

+0

Nicht verwandt, aber: das 'select nextval' ist nicht notwendig. Sie können 'SEQ_DEM.NEXTVAL' direkt in der Klausel' values ​​() 'verwenden. –

+0

"Es zeigt ein rotes Kreuz" - was ist "es"? Meintest Du [PL/SQL Entwickler] (http://stackoverflow.com/tags/plsqldeveloper/info)? Wenn ja, müssen Sie in einem Programmfenster arbeiten (und Ihre Frage markieren). –

Antwort

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'; 

andere Fehler war ich nicht erwähnt, weil ich nicht Tabellennamen und Sequenzen haben.

+0

scheint, als müssten Sie die Variablen deklarieren l_e, C_L und V_CODEREP – ErikL

1

Die 3 genannten Variablen sind nicht deklariert.

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

... 
0

Bitte definieren Sie die Variablen l_e, C_L und V_CODEREP im Variablendeklarationsbereich. zum Beispiel -

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