Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Falsche Anzahl oder falsche Argumenttypen beim Aufrufen der Prozedur

Siehe die Änderung unten, den Aufruf von title_crud hat keine Variable, um zu halten, was von ihm zurückgegeben wird (p_err)

PROCEDURE create_title(
        P_TITLE varchar2,
        P_USER varchar2,
        P_ERR OUT VARCHAR2 
   )
   IS    
   BEGIN  
        IF P_TITLE IS NULL THEN
            P_ERR := 'Null value';
        ELSE
            title_crud('I',NULL,P_TITLE,P_USER,P_ERR); -- Extra Parameter      
        END IF;  
   END;


 PROCEDURE title_crud(
        P_OP_TYPE VARCHAR2,
        P_ID number,
        P_TITLE varchar2,
        P_USER varchar2,
        P_ERR OUT VARCHAR2 
   )...

Ein leicht zu machender Fehler, aber ich finde es einfacher zu vermeiden, wenn Sie eine Prozedur aufrufen, bei der Sie Parameter in benannter Notation übergeben. Ihr Aufruf von title_crud wird zu

...
 title_crud(P_OP_TYPE => 'I',
            P_ID      =>  NULL,
            P_TITLE   =>  P_TITLE,
            P_USER    =>  P_USER,
            P_ERR     =>  P_ERR);
...