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

搜索热词

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

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

sql;">

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调用示例:

_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,如果是其它类型就要指明

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

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

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值