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


Posted in PHP onJanuary 08, 2017

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

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

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

PHP 相关文章推荐
MySQL相关说明
Jan 15 PHP
php 传值赋值与引用赋值的区别
Dec 29 PHP
php学习笔记 数组的常用函数
Jun 13 PHP
PHP中比较时间大小实例
Aug 21 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
Oct 30 PHP
php实现二进制和文本相互转换的方法
Apr 18 PHP
PHP关联数组实现根据元素值删除元素的方法
Jun 26 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
Jul 01 PHP
PHP三种方式实现链式操作详解
Jan 21 PHP
PHP filesize函数用法浅析
Feb 15 PHP
Laravel 6.2 中添加了可调用容器对象的方法
Oct 22 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
Jun 06 PHP
微信开发之php表单微信中自动提交两次问题解决办法
Jan 08 #PHP
yii2-GridView在开发中常用的功能及技巧总结
Jan 07 #PHP
yii2实现分页,带搜索的分页功能示例
Jan 07 #PHP
Yii框架用户登录session丢失问题解决方法
Jan 07 #PHP
Yii框架表单提交验证功能分析
Jan 07 #PHP
Yii框架弹出框功能示例
Jan 07 #PHP
Yii框架弹出窗口组件CJuiDialog用法分析
Jan 07 #PHP
You might like
用 PHP5 轻松解析 XML
2006/12/04 PHP
phpinfo 系统查看参数函数代码
2009/06/05 PHP
PHP输出缓存ob系列函数详解
2014/03/11 PHP
PHP中使用imagick生成PSD文件缩略图教程
2015/01/26 PHP
PHP实现根据图片色界在不同位置加水印的方法
2015/08/08 PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
2015/12/15 PHP
利用js动态添加删除table行的示例代码
2013/12/16 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
基于JavaScript实现 网页切出 网站title变化代码
2016/04/03 Javascript
jQuery获取单击节点对象的方法
2016/06/02 Javascript
javascript jquery对form元素的常见操作详解
2016/06/12 Javascript
Centos7 中安装 Node.js v4.4.4
2016/11/03 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
2016/11/30 Javascript
js实现敏感词过滤算法及实现逻辑
2018/07/24 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
2018/08/29 Javascript
electron中使用bootstrap的示例代码
2018/11/06 Javascript
React父子组件间的传值的方法
2018/11/13 Javascript
微信小程序中data-key属性之数据传输(经验总结)
2020/08/22 Javascript
如何在vue-cli中使用css-loader实现css module
2021/01/07 Vue.js
[03:11]TI9战队档案 - Alliance
2019/08/20 DOTA
Python批量创建迅雷任务及创建多个文件
2016/02/13 Python
Python输出各行命令详解
2018/02/01 Python
python中使用print输出中文的方法
2018/07/16 Python
使用Python+wxpy 找出微信里把你删除的好友实例
2019/02/21 Python
详解Matplotlib绘图之属性设置
2019/08/23 Python
用python对oracle进行简单性能测试
2020/12/05 Python
约瑟夫·特纳男装:Joseph Turner
2017/10/10 全球购物
巴西最大的珠宝连锁店:Vivara
2019/04/18 全球购物
学习两会精神心得范文
2014/03/17 职场文书
公司授权委托书格式样本
2014/10/01 职场文书
财务工作检讨书
2014/10/29 职场文书
2014年旅游局法制宣传日活动总结
2014/11/01 职场文书
大学生毕业个人总结
2015/02/15 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
15个值得收藏的JavaScript函数
2021/09/15 Javascript
python ConfigParser库的使用及遇到的坑
2022/02/12 Python