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相关资料
Oct 09 PHP
PHP4实际应用经验篇(9)
Oct 09 PHP
php 获取百度的热词数据的代码
Feb 18 PHP
探讨:array2xml和xml2array以及xml与array的互相转化
Jun 24 PHP
php生成唯一的订单函数分享
Feb 02 PHP
php 在字符串指定位置插入新字符的简单实现
Jun 28 PHP
php中foreach结合curl实现多线程的方法分析
Sep 22 PHP
Yii框架实现图片上传的方法详解
May 20 PHP
PHP删除数组中指定下标的元素方法
Feb 03 PHP
PHP常用函数之格式化时间操作示例
Oct 21 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 PHP
PHP常用字符串函数用法实例总结
Jun 04 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
动态生成gif格式的图像要注意?
2006/10/09 PHP
PHP资源管理框架Assetic简介
2014/06/12 PHP
PHP实现文件下载断点续传详解
2014/10/15 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
JQuery for与each性能比较分析
2013/05/14 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
jquery滚动特效集锦
2015/06/03 Javascript
详解AngularJS中的表格使用
2015/06/16 Javascript
JavaScript脚本判断蜘蛛来源的方法
2015/09/22 Javascript
JS拖拽组件学习使用
2016/01/19 Javascript
web前端开发upload上传头像js示例代码
2016/10/22 Javascript
JS ES6中setTimeout函数的执行上下文示例
2017/04/27 Javascript
JS简单实现父子窗口传值功能示例【未使用iframe框架】
2017/09/20 Javascript
解决vue无法设置滚动位置的问题
2018/10/07 Javascript
javascript的this关键字详解
2019/05/20 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
[07:57]DOTA2热力大趴狂欢夜 广州站活动回顾
2013/11/27 DOTA
wxPython定时器wx.Timer简单应用实例
2015/06/03 Python
实例讲解Python的函数闭包使用中应注意的问题
2016/06/20 Python
Django REST Framework之频率限制的使用
2019/09/29 Python
python多进程重复加载的解决方式
2019/12/13 Python
如何基于python测量代码运行时间
2019/12/25 Python
pymysql 插入数据 转义处理方式
2020/03/02 Python
opencv-python的RGB与BGR互转方式
2020/06/02 Python
python 实现rolling和apply函数的向下取值操作
2020/06/08 Python
安装Anaconda3及使用Jupyter的方法
2020/10/27 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
举例讲解Python装饰器
2020/12/24 Python
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
澳大利亚最受欢迎的超级商场每日优惠:Catch
2020/11/17 全球购物
电脑租赁公司创业计划书
2014/01/08 职场文书
护士感人事迹
2014/05/01 职场文书
优秀纪检干部材料
2014/08/27 职场文书
副乡长民主生活会个人对照检查材料思想汇报
2014/10/01 职场文书
政风行风评议心得体会
2014/10/21 职场文书