谁的存储过程用的好啊,帮我看看,在线等待中.......

海洋‘s 2002-05-25 03:13:05
存储过程[保存在数据库中]是:
PROCEDURE inp_fun_dbsh1(v_jhid IN VARCHAR2,v_res OUT NUMBER, v_report OUT VARCHAR2) IS
BEGIN
IF substr(v_jhid,1,1) = '港' THEN
v_report := '数据表“AC01”,主关键字“1,1”,字段“顶界深度,孔隙度”录入错误,请改正';
v_res := 0;
ELSE
v_report := '全部数据录入正确,可以向成果库转移';
v_res := 1;
END IF;
END;

我在程序中是这样调用的:
Declare inp_fun_jhid Procedure FOR
inp_fun_dbsh1('港38',i,str);

EXECUTE inp_fun_jhid;
可是什么也不执行啊
...全文
21 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
海洋‘s 2002-05-26
  • 打赏
  • 举报
回复
没有啊
jakarta 2002-05-25
  • 打赏
  • 举报
回复
好!
你的问题解决了吗?
海洋‘s 2002-05-25
  • 打赏
  • 举报
回复
好啊,一定是朋友了。
在这里非常感谢大家百忙之中抽空儿看看。
jakarta 2002-05-25
  • 打赏
  • 举报
回复
不好意思。不管怎样,做个朋友吧!
swjtu95 2002-05-25
  • 打赏
  • 举报
回复
no.
jakarta 2002-05-25
  • 打赏
  • 举报
回复
请问您是不是阿狼老师?(TQ 中的)
swjtu95 2002-05-25
  • 打赏
  • 举报
回复
string ls_jhid,ls_report
int li_res
DECLARE inp_fun_jhid PROCEDURE FOR inp_fun_dbsh1(:ls_jhid);
ls_jhid = '港38'
EXECUTE inp_fun_jhid;
if sqlca.sqlcode =0 then
Fetch inp_fun_jhid Into :li_res,:ls_report;
end if
messagebox(string(li_res),ls_report)
close inp_fun_jhid;
myclife 2002-05-25
  • 打赏
  • 举报
回复
在ORACLE中执行尝试。
海洋‘s 2002-05-25
  • 打赏
  • 举报
回复
是的,我执行了,就是没有返回值,也没有错误信息。
myclife 2002-05-25
  • 打赏
  • 举报
回复
兄弟,在PB的帮助中定义存储过程用的是我给你发的那段,我没试过,应该不回错。
swjtu95(老狼)说的对你执行了没,执行后用FETCH取值。
jakarta 2002-05-25
  • 打赏
  • 举报
回复
不能吧。
messageBox("",str)
另外,汉字是不是占两个字符?substr(v_jhid,1,2)
海洋‘s 2002-05-25
  • 打赏
  • 举报
回复
还是没有
myclife 2002-05-25
  • 打赏
  • 举报
回复
高手出面了。
swjtu95 2002-05-25
  • 打赏
  • 举报
回复
Fetch inp_fun_jhid Into :li_res,ls_report;
这一句的后面才能取出返回值
海洋‘s 2002-05-25
  • 打赏
  • 举报
回复
可是执行后没有返回值,
jackygan 2002-05-25
  • 打赏
  • 举报
回复
swjtu95(老狼) 可以尝试。
海洋‘s 2002-05-25
  • 打赏
  • 举报
回复
好的,我去看看,谢谢!
那个'港38'只是给出的一个井号,其实ls_jhid是不确定的。
jakarta 2002-05-25
  • 打赏
  • 举报
回复
带输出参数的SP这样调用:
Declare inp_fun_jhid Procedure FOR inp_fun_dbsh1('港38');
EXECUTE inp_fun_jhid;
fetch inp_fun_jhid into :i,:str;
close inp_fun_jhid ;
swjtu95 2002-05-25
  • 打赏
  • 举报
回复
最前有
ls_jhid = '港38'
swjtu95 2002-05-25
  • 打赏
  • 举报
回复
DECLARE inp_fun_jhid PROCEDURE FOR inp_fun_dbsh1
@jhid=:ls_jhid,//输入参数
@res=:li_res OUTPUT,//输出参数
@report=:ls_report OUTPUT;//输出参数
EXECUTE inp_fun_jhid;
if sqlca.sqlcode =0 then
Fetch inp_fun_jhid Into :li_res,ls_report;
end if
close inp_fun_jhid;

1,079

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧