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 相关文章推荐
php下封装较好的数字分页方法
Nov 23 PHP
php中根据某年第几天计算出日期年月日的代码
Feb 24 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
Jun 18 PHP
php函数serialize()与unserialize()用法实例
Nov 06 PHP
php中get_object_vars()方法用法实例
Feb 08 PHP
php+Mysqli利用事务处理转账问题实例
Feb 11 PHP
php不使用copy()函数复制文件的方法
Mar 13 PHP
PHP加密解密类实例分析
Apr 20 PHP
yii2实现 "上一篇,下一篇" 功能的代码实例
Feb 04 PHP
php连接mysql数据库
Mar 21 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
Aug 05 PHP
PHP中国际化的字符串排序和比较对象详解
Aug 23 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
Terran历史背景
2020/03/14 星际争霸
菜鸟修复电子管记
2021/03/02 无线电
第1次亲密接触PHP5(1)
2006/10/09 PHP
php修改NetBeans默认字体的大小
2013/07/02 PHP
基于php判断客户端类型
2016/10/14 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
2019/03/30 PHP
XP折叠菜单&仿QQ2006菜单
2006/12/16 Javascript
JS 控制CSS样式表
2009/08/20 Javascript
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
2010/03/09 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
关于JavaScript与HTML的交互事件
2013/04/12 Javascript
改变隐藏的input中value值的方法
2014/03/19 Javascript
AngularJS 所有版本下载地址
2016/09/14 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
基于daterangepicker日历插件使用参数注意的问题
2017/08/10 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
2017/11/18 Javascript
jQuery中$原理实例分析
2018/08/13 jQuery
详解JavaScript事件循环机制
2018/09/07 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
用vuex写了一个购物车H5页面的示例代码
2018/12/04 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
2019/10/31 Javascript
js 计数排序的实现示例(升级版)
2020/01/12 Javascript
[02:04]2014DOTA2国际邀请赛 DK一个时代的落幕
2014/07/21 DOTA
Python base64编码解码实例
2015/06/21 Python
Python计算已经过去多少个周末的方法
2015/07/25 Python
Python实现繁?转为简体的方法示例
2018/12/18 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
2020/11/02 Python
python 三种方法提取pdf中的图片
2021/02/07 Python
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
教师自荐信范文
2013/12/09 职场文书
三八红旗手先进事迹材料
2014/05/13 职场文书
销售岗位职责范本
2014/06/12 职场文书
订货会邀请函
2015/01/31 职场文书
2016年中秋节慰问信
2015/12/01 职场文书