PLS-00306: mauvais nombre ou les types d'arguments dans l'appel à "PUT_LINE'

C'est la première fois que j'ai essayé d'écrire une procédure Oracle et j'obtiens une erreur (comme illustré dans la question du titre) de centrage sur le DBMS_OUTPUT.PUT_LINE ligne.

J'ai lu sur internet que l'on ne peut remettre VARCAHR2 colonnes, donc j'ai jeté les deux seuls non VARCHAR2 colonnes qui sont accessibles, mais je reçois toujours le message d'erreur. Cette erreur se produit lorsque j'essaie de le lancer directement dans l'oracle SQL Developer.

CREATE OR REPLACE PROCEDURE LOGGING_PRC 
(
  STARTDATE_IN IN VARCHAR2,
  ENDDATE_IN IN VARCHAR2,
  NAMES_IN IN VARCHAR2, 
  MODS_IN IN VARCHAR2, 
  LOGS_IN IN VARCHAR2,

  ID_OUT OUT VARCHAR2,
  NAME_OUT OUT VARCHAR2,
  MODULE_OUT OUT VARCHAR2,
  ENTRYDATE_OUT OUT VARCHAR2,
  STATUS_OUT OUT VARCHAR2,
  TYPE_OUT OUT VARCHAR2
)  
  AS 
BEGIN
    SELECT
    CAST(ID_LOG AS VARCHAR2(16)),
     APNAME,
     APPMOD,
     CAST(ENTRYDATE AS VARCHAR2(30)),
     APPSTATUS,
     LOGTYPE
  INTO 
      ID_OUT,
      NAME_OUT,
      MODULE_OUT,
      ENTRYDATE_OUT,
      STATUS_OUT,
      TYPE_OUT
   FROM 
     BASE          
   WHERE     
     ENTRYDATE > STARTDATE_IN AND
     ENTRYDATE  < ENDDATE_IN AND
     (NAMES  =  NAMES_IN OR NAMES_IN IS NULL) AND
     (MODS = MODS_IN OR MODS_IN IS NULL) AND
     (LOGS = LOGS_IN  OR LOGS_IN IS NULL);      
  RETURN;
DBMS_OUTPUT.PUT_LINE(ID_OUT, NAME_OUT, MODULE_OUT, ENTRYDATE_OUT, STATUS_OUT, TYPE_OUT);
END LOGGING_PRC;

Quelqu'un de voir où j'ai le code incorrect?

  • Le syntaxe la montre ne prend qu'un seul argument de type string, et non une liste.
InformationsquelleAutor michaelk46 | 2016-03-08