有什么办法可以解决ORACLE的OUT参数问题么?!!!

dragon_xhf 2009-12-28 01:30:04
CREATE OR REPLACE PROCEDURE CRM.P_REL_RESOURCE(g3mobileno IN VARCHAR2, SIM IN VARCHAR2, RESULT_MSG OUT VARCHAR2) AS
-------------------------这是存储过程A,含有两个输入参数,两个输入参数,可以同时为空,也可以同时不为空,也可以一个空,一个不空,经过存储过程的处理后,通过RESULT_MSG的OUT参数提示是否释放号码成功或者释放卡号成功。

我不得不说这个RESULT_MSG这个OUT参数实在是多此一举,

这最终导致了我无法在PHP中调用这个存储过程!!!!!!!

他娘的!!!!!!!

如果这个存储过程没有这个OUT参数,

我只需要在PHP使用下列
$releasesql='begin crm.ja_rel_resource(g3mobileno => '.$SBHM.',SIM => null); end;';
$stmt = OCIParse($conn,$releasesql);
OCIExecute($stmt);
OCIFreeStatement($stmt);
就可以成功调用,实现通过PHP网页来输入号码,检查号码,释放号码!


但是正是由于原存储过程加了OUT参数,
导致我在PHP中试验了N多的办法,全部失败!根本没办法是现在PHP成功调用和成功执行带OUT参数的存储过程,
真是气愤得不得了!!


大家帮我出出主意,如何能调用成功!!
...全文
122 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sulins 2009-12-29
  • 打赏
  • 举报
回复
OUT参数不是多此一举,而是你自己不懂得如何调用存储过程。
crazylaa 2009-12-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 shiyiwan 的回复:]
$SBOUT = ' ';
$releasesql='begin crm.ja_rel_resource(g3mobileno =>  '.$SBHM.',SIM  => null, RESULT_MSG=> '.$SBOUT.'); end;';
$stmt = OCIParse($conn,$releasesql);
OCIExecute($stmt);
OCIFreeStatement($stmt);

[/Quote]

out参数只要在外面先定义下变量,然后调用时赋给存储过程的对应参数就好了。
执行完之后,可以得到这个变量的值。
shiyiwan 2009-12-28
  • 打赏
  • 举报
回复
$SBOUT = ' ';
$releasesql='begin crm.ja_rel_resource(g3mobileno => '.$SBHM.',SIM => null, RESULT_MSG=> '.$SBOUT.'); end;';
$stmt = OCIParse($conn,$releasesql);
OCIExecute($stmt);
OCIFreeStatement($stmt);
dragon_xhf 2009-12-28
  • 打赏
  • 举报
回复
注: 我没权限在原数据库上建立存储过程

17,088

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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