oracle中自定义了个函数调用存储过程返回空 15

自定义函数CREATEORREPLACEFUNCTIONget_Name_By_Code()RETURNVARCHAR2IStmpVarVARCHAR2(3000);BE... 自定义函数
CREATE OR REPLACE FUNCTION get_Name_By_Code() RETURN VARCHAR2 IS
tmpVar VARCHAR2(3000);
BEGIN
tmu_bdres.p_app(tmpVar);--调用存储过程
RETURN tmpVar;
commit;
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';
tmpVar := ‘结果集’;
end p_app;
展开
 我来答
king7788520
2011-11-30 · TA获得超过262个赞
知道小有建树答主
回答量:120
采纳率:0%
帮助的人:151万
展开全部
同学,tmpVar没有初始化阿。
追问
tmpVar初始化?这个和初始化有什么关系,
追答
tmpVar VARCHAR2(3000);
没有初值的话 tmpVar=NULL;
然后你RETURN tmpVar;
RENTURN 的不就是 NULL 么?
moreazy
2011-11-25 · TA获得超过742个赞
知道小有建树答主
回答量:274
采纳率:0%
帮助的人:132万
展开全部
你单步调试看看,另外commit在return后面?
追问
单步调式没有问题,但是我用java发出的语句 select
get_name_by_code() as col_0_0_
from
TMU_BDRES.T_BDRES_AUX_APPNUMGEN tbdresauxa0_调就返回空了,我把存储过程中的update语句删掉就没问题
commit在return前 我写错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式