php 访问oracle类,php 访问oracle 存储过程实例详解

php 访问oracle 存储过程实例详解2020-06-18 09:35:23

b034e27f67b8bb7b4ca5f1e94a7bf37f.png

php 访问oracle 存储过程实例详解

比如我的本地Oracle数据库有一个package,里面有一个存储过程:create or replace package PKG_TRANS_REL is

-- Author : test

-- Created :

-- Purpose : test

-- Public type declarations

PKG_NAME varchar2(20) := 'PKG_TRANS_REL';

--存储过程,测试用

procedure pro_GC_withdraw(in_merch_no in varchar2,

in_withdraw_amt in number,

out_result out number,

out_errmsg out varchar2);

end PKG_TRANS_REL;

包名是PKG_TRANS_REL,存储过程是pro_GC_withdraw,这个存储过程有四个参数,两个入参,两个出参。

在PHP中通过pdo调用示例:$this->_pdo = new PDO(PDO_DB_DNS, PDO_DB_USER, PDO_DB_PASSWORD);

$call = "CALL PKG_TRANS_REL.pro_GC_withdraw(?,?,?,?)";

try{

$stmt = $this->_pdo->prepare($call);

$stmt->bindParam(1, $merch_no);

$stmt->bindParam(2, $amount, PDO::PARAM_INT);

$stmt->bindParam(3, $result, PDO::PARAM_INT, 4);

$stmt->bindParam(4, $error_msg, PDO::PARAM_STR, 64);

$stmt->execute();

}catch (PDOException $e)

{

$msg = 'SQL:'.$e->getMessage();

$msg = iconv('GBK','UTF-8',$msg);

user_dump('SQL:'.$msg);

return false;

}

...

bindParam第三个参数默认是PDO::PARAM_STR,如果是其它类型就要指明

入参传值比较简单,出参稍微复杂些,要指明长度。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

Tags 标签

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值