如何使用存储的PL / SQL过程调用包函数?

时间:2015-03-03 10:30:03

标签: sql oracle

假设我有一个包含三个功能的包。然后我在PL / SQL中创建一个存储过程。我如何调用包" test_pkg"从这个程序并代表函数的结果?

1 个答案:

答案 0 :(得分:1)

这是我如何做到的。

CREATE OR REPLACE PACKAGE test_pack IS
  FUNCTION foobar RETURN varchar2;
  FUNCTION foo RETURN varchar2;
  FUNCTION bar RETURN varchar2; 
END test_pack;  

CREATE OR REPLACE PACKAGE BODY test_pack IS
 FUNCTION foobar RETURN varchar2 IS
   BEGIN
    return 'star';
  END foobar;
  FUNCTION foo RETURN varchar2 IS
  BEGIN
    return 'foo';
  END foo;
  FUNCTION bar RETURN varchar2 IS
  BEGIN
    return 'bar';
  END bar;
END test_pack;

CREATE OR REPLACE PROCEDURE test_the_pack IS
BEGIN
  DBMS_OUTPUT.PUT_LINE('foobar returns: ' || test_pack.foobar());
  DBMS_OUTPUT.PUT_LINE('foo returns: ' || test_pack.foo());
  DBMS_OUTPUT.PUT_LINE('bar returns: ' || test_pack.bar());

END test_the_pack;