Qualcuno può aiutarmi a inserire la mia procedura pl/sql in un pacchetto? Ho provato e sto lottando con esso:Errore Oracle PLS-00323: il sottoprogramma o il cursore sono dichiarati in una specifica del pacchetto e devono essere definiti nel corpo del pacchetto
Questo è quello che ho, per la mia specifica del pacchetto:
CREATE OR REPLACE PACKAGE film_pkg
IS
title VARCHAR2(100);
PROCEDURE get_films(fname VARCHAR2);
END film_pkg;
--
Questo è il mio corpo del pacchetto in cui im incorrere in problemi:
CREATE OR REPLACE PACKAGE BODY film_pkg
IS
PROCEDURE get_films (fname IN film.title%TYPE,
r_date OUT film.release_date%TYPE,
dur OUT film.duration%TYPE)
AS
BEGIN
SELECT release_date, duration
INTO r_date, dur
FROM FILM
WHERE title = fname;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
r_date := '';
dur := '';
END get_films;
END film_pkg;
se qualcuno potrebbe aiutarmi a correggere gli errori sarei grato:
Error(4,11): PLS-00323: subprogram or cursor 'GET_FILMS' is declared in a package specification and must be defined in the package body
Quando ho provato ho ricevuto l'errore nel corpo del pacchetto: Errore (4,11): PLS-00323: il sottoprogramma o il cursore "GET_FILMS" è dichiarato in una specifica del pacchetto e deve essere definito nel corpo del pacchetto – SqlNoob
@SqlNoob - '% type' va bene, ma devi usare esattamente la stessa dichiarazione, non puoi mescolare e abbinare anche se sai che sono uguali; hai fatto le specifiche 'fname IN film.titolo% type' troppo, o lasciare che come 'varchar'? L'intera dichiarazione deve essere identica. (E non è possibile specificare la dimensione per un parametro, quindi 'varchar2 (50 byte)' causerebbe un errore). –