Can someone help me put my pl/sql procedure in a package? I've tried and I'm struggling with it:
This is what I have, for my package specification:
CREATE OR REPLACE PACKAGE film_pkg
IS
title VARCHAR2(100);
PROCEDURE get_films(fname VARCHAR2);
END film_pkg;
--
This is my package body where im running into the problems:
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;
if anyone could help me fix the errors i'd appreciate it:
Error(4,11): PLS-00323: subprogram or cursor 'GET_FILMS' is declared in a package specification and must be defined in the package body
"parameter name that was inside the procedure defined in the body did not match with the corresponding parameter name in the body."
Your header and body procedure definitions don't match
In the header, you have:
Whereas in the body:
You probably just need to update the header definition with the two additional OUT params?
To Summarize
film.title%type
) with the base type (VARCHAR2
). Choose one or the other."subprogram or cursor 'M115_EDIT' is declared in a package specification and must be defined in the package body"
I got this error while i was working on my project.the reason for this was the a parameter name that was inside the procedure defined in the body did not match with the corresponding parameter name in the body.
my specification:
my body
my market_code parameter is different in the body when compared with the specification where it is defined as sub_market_code.error occurred due to this difference. i changed the sub_market_code parameter in the specification to market_code so that it matches with the body and this solved the problem mentioned above.
clearly 2 parameters that are mentioned in your body implementation of the procedure 'r_date' and 'dur' are not defined in the specification.error is due to this difference between the body and the specification.