繁体   English   中英

使用 function 和过程 pl sql 创建 package

[英]create package with function and procedure pl sql

所以我做了一个 function 和一个程序。 function 是返回一个部门中员工人数最多的年份(由用户输入)。 然后该过程将显示特定年份的部门中的员工列表(该年份从函数的返回中使用)。 然后我将它们编译成 package。但是当我调用它们时,它不起作用。 它说“未执行,package 正文“SQL_CXYSUJQLPSOQZJEYHEXHDIXUZ.MY_PCKG”不存在 ORA-06512:第 5 行”。 有任何想法吗? 谢谢!

create or replace package my_pckg as 
function check_date (my_name departments.department_name%type) RETURN INT;
procedure check_name(P_IN_DEPT_NAME IN VARCHAR2,P_IN_YEAR IN NUMBER);
END;
/

declare
my_var int;
my_var2 departments.department_name%type:='Shipping';
begin
my_var:=my_pckg.check_date(my_var2);
dbms_output.put_line(my_var);
my_pckg.check_name(my_var2,my_var);
end;
/

查看您的问题,您似乎还没有创建 package 正文。

  • Package (标头)包含其中唯一的function/procedure声明。
  • function/procedure的实际实现必须包含在 package 主体中。

类似如下:

CREATE OR REPLACE PACKAGE PKG_NAME AS
  -- DECLARATION OF FUNCTION AND PROCEDURE WILL GO HERE
  FUNCTION FUN1(....);
  PROCEDURE PROC1(....);
END PKG_NAME;
/

CREATE OR REPLACE PACKAGE BODY PKG_NAME AS 
  -- ACTUAL IMPLEMENTATION OF FUNCTION AND PROCEDURE WILL GO HERE
  FUNCTION FUN1(....) AS
  ....
  ....
  END FUN1;

  PROCEDURE PROC1(....) AS
  ....
  ....
  END PROC1;
END PKG_NAME;
/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM