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.
Vous devez vous connecter pour publier un commentaire.
DBMS_OUTPUT.PUT_LINE est définie comme suit
donc, il n'accepte qu'un seul paramètre d'entrée.
Si vous avez besoin d'imprimer les valeurs de plus d'un domaine, vous avez besoin de les concaténer en un seul
varchar2
; vous pouvez essayer avec :