我在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