小编Sql*_*oob的帖子

Oracle Error PLS-00323:子程序或游标在包规范中声明,必须在包体中定义

有人可以帮我把我的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 …
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql stored-procedures packages

18
推荐指数
1
解决办法
6万
查看次数

在java中调用pl/sql函数?

所以我有一个功能可以检查我的预订表中有多少取消:

CREATE OR REPLACE FUNCTION total_cancellations
RETURN number IS
   t_canc number := 0;
BEGIN
   SELECT count(*) into t_canc
   FROM booking where status = 'CANCELLED';
   RETURN t_canc;
END;
/
Run Code Online (Sandbox Code Playgroud)

要在sql中执行他,我使用:

set serveroutput on
DECLARE
   c number;
BEGIN
   c := total_cancellations();
   dbms_output.put_line('Total no. of Cancellations: ' || c);
END;
/
Run Code Online (Sandbox Code Playgroud)

我的结果是:

anonymous block completed
Total no. of Cancellations: 1
Run Code Online (Sandbox Code Playgroud)

我的问题是有人可以帮我调用JAVA中的函数,我试过但没有运气.

java oracle plsql function jdbc

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

oracle ×2

plsql ×2

function ×1

java ×1

jdbc ×1

packages ×1

sql ×1

stored-procedures ×1