2015-03-03 53 views
0

可以说我有一个包含三个函数的包。然后我在PL/SQL中创建一个存储过程。我怎样才能从这个过程中调用包“test_pkg”并表示函数的结果?如何使用存储的PL/SQL过程调用包函数?

+0

您可以调用程序包中的过程/函数,而不是程序包本身。 – Sathya 2015-03-03 10:34:30

+0

你有什么尝试?告诉我们你到目前为止的状况,并且我们应该能够指明方向。 – Boneist 2015-03-03 10:38:58

+0

好吧,如果我有功能F_test3,存储其他功能的结果。我可以像这样在包外的存储过程中调用函数吗? 程序测试 as begin F_test3; – 2015-03-03 10:41:48

回答

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; 
+0

谢谢!为你的例子=) – 2015-03-03 14:46:12