sql >> Databasteknik >  >> RDS >> Oracle

Fel antal eller typer av argument fel vid anrop av proceduren

Se ändringen nedan, anropet till title_crud har ingen variabel för det som returneras av den (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 
   )...

Ett lätt misstag att göra men jag tycker det är lättare att undvika när du anropar en procedur skickar du parametrar med namngiven notation. Ditt samtal till title_crud blir

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



  1. Välj vokaler från en varchar, Oracle PL/SQL

  2. Använd en CTE för att UPPDATERA eller DELETE i MySQL

  3. SQL-valsfråga med funktioner för kopplingar, gruppera efter och aggregerade

  4. Strongloop:filtrera data med [och] och [eller] villkor tillsammans