Sql*_*oob 18 sql oracle plsql stored-procedures packages
有人可以帮我把我的pl/sql程序放在一个包中吗?我试过了,我正在努力:
这就是我的包装规格:
CREATE OR REPLACE PACKAGE film_pkg
IS
title VARCHAR2(100);
PROCEDURE get_films(fname VARCHAR2);
END film_pkg;
--
Run Code Online (Sandbox Code Playgroud)
这是我的包体,我遇到了问题:
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;
Run Code Online (Sandbox Code Playgroud)
如果有人可以帮我修复错误,我会很感激:
Error(4,11): PLS-00323: subprogram or cursor 'GET_FILMS' is declared in a package specification and must be defined in the package body
Run Code Online (Sandbox Code Playgroud)
Stu*_*tLC 36
您的标头和正文过程定义不匹配
在标题中,您有:
PROCEDURE get_films(fname VARCHAR2);
Run Code Online (Sandbox Code Playgroud)
而在身体:
PROCEDURE get_films(fname IN film.title%type,
r_date OUT film.release_date%type, dur OUT film.duration%type)
Run Code Online (Sandbox Code Playgroud)
您可能只需要使用另外两个OUT参数更新标头定义?
总结一下
film.title%type
)与基本类型(VARCHAR2
)混合和匹配.选择其中一个. 归档时间: |
|
查看次数: |
61528 次 |
最近记录: |