2015-03-03 38 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

相關問題