oracle自定义函数调用存储过程为空,把存储过程中的update注释就没问题了

hibernate发出的调用自定义函数的语句是selectget_name_by_code()ascol_0_0_fromdual在pl/sql中调试可以通过但是一调用就... hibernate发出的调用自定义函数的语句是 select
get_name_by_code() as col_0_0_
from
dual 在pl/sql中调试可以通过 但是一调用就返回空
自定义函数
CREATE OR REPLACE FUNCTION get_Name_By_Code() RETURN VARCHAR2 IS
tmpVar VARCHAR2(3000);
BEGIN
p_app(tmpVar);--调用存储过程
RETURN tmpVar;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN '';
WHEN OTHERS THEN
RETURN '';
END get_Name_By_Code;
--存储过程
create or replace procedure p_app( tmpVar OUT VARCHAR2) is
begin
update 表 set 字段 = 'aa' where 字段= 'bb';--update注释掉就行了
commit;
tmpVar := ‘结果集’;
end p_app;
展开
 我来答
康熙转世
2011-11-29 · TA获得超过6839个赞
知道大有可为答主
回答量:4325
采纳率:85%
帮助的人:2927万
展开全部
1查询中是不能执行dml语句的 会报错
2是你的function不传入参数编译不会报错么?
更多追问追答
追问
那我怎么办呢,我现在需要用函数调用存储过程,需求是查询数据库一个字段 根据这个字段然后(比如10)然后增加1并修改数据库
追答
要么写一个过程 要么程序判断返回更新 你想用select一个自定义函数去调过程update数据是肯定办不到的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式