FUNCTION getparam(aaa IN NUMBER) RETURN VARCHAR2 IS BEGIN INSERT INTO test2 (aa) VALUES (aaa); RETURN('number1~'); END;
则用sql方式调用不允许,这或许是因为PL/SQL的纯度限制问题,以后再作深究。有DML语句的情况下,可以表达式方式调用,如:
declare kk varchar2(30); begin -- INSERT INTO test2 (aa) VALUES (22); kk:=testpkg.getparam(11); dbms_output.put_line('kkkkk:'||kk); commit; end;
以上是在pl developer中的sql窗口中调用,注意后面的commit;语句,由于pl developer默认并不自动提交,所以需加上此语句方可另开窗口查询到表中的插入结果,或执行完这些语句后手工按窗口上的提交按钮提交。
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/349.html