Quelques problèmes :
VARHAR2
nous une faute de frappe et devrait êtreVARCHAR2
.- Vous pouvez à la place spécifier les types de données pour référencer les colonnes de table correspondantes en utilisant
table_name.column_name%TYPE
.
- Vous pouvez à la place spécifier les types de données pour référencer les colonnes de table correspondantes en utilisant
- La procédure ne produit rien - vous devez changer l'un des
IN
paramètres à unOUT
(ou unIN OUT
paramètre). - Votre requête ne spécifie pas de nom de table.
- Vous pouvez utiliser
SELECT ... INTO ...
plutôt qu'unCURSOR
.
Quelque chose comme ça :
CREATE OR REPLACE PROCEDURE FIRSTPROC (
ID1 IN table_name.id1val%TYPE,
ID2 OUT table_name.id2val%TYPE
)
AS
BEGIN
DBMS_OUTPUT.PUT_LINE(ID1);
SELECT id2val
INTO ID2
FROM table_name
WHERE id1val = ID1;
EXCEPTION
WHEN NO_DATA_FOUND THEN
ID2 := 0; -- Or you could use NULL
WHEN TOO_MANY_ROWS THEN
ID2 := 0; -- Or you could use NULL
END;
/