我在Windows機器上使用Oracle Forms 6i時,在窗體中,當我單擊某個按鈕時,啓動觸發器WHEN-BUTTON-PRESSED,調用一個包的函數在數據庫中,下面是觸發和功能兩者的PL/SQL代碼:從Oracle窗體調用函數
功能:
Function test_function (code Varchar2) RETURN Varchar2 IS
BEGIN
if code IN ('Y') then
return('Yes');
else
return('no');
endif;
END;
觸發:
DECLARE
message_test varchar2(20);
BEGIN
message_test := pkg_test.test_function('Y');
message('the message is: ' || message_test);pause;
END;
我在這裏的問題是,它不是的怎麼什麼,但是當我在寫SQL * pkg_test.test_function('Y')
加或SqlDevelopper它顯示'Yes'
結果,
或當我改變message_test := pkg_test.test_function('Y');
與select pkg_test.test_function('Y') into message_test from test;
它的工作原理也。
可能是什麼原因呢? PS:這只是一個測試代碼,實際的代碼比這個更復雜。
輸出是否爲空白?或者它顯示「該消息是:」並且沒有消息?因爲如果它是第一個,那麼你的message()函數沒有做任何事情,但如果它是第二個,那麼調用pkg_test.test_function()會出問題。 – kfinity
@ kfinity它是空白的,沒有「信息是:」,這個問題與調用pkg_test.test_function()。 – zenami
嗯,也許你得到一個錯誤?您可以將觸發器的末尾更改爲:「EXCEPTION when others then message(dbms_utility.format_error_backtrace); END;'看看它是什麼。 – kfinity