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 DOMElement 操作xml 文档的实现代码
May 10 PHP
学习php过程中的一些注意点的总结
Oct 25 PHP
php之curl实现http与https请求的方法
Oct 21 PHP
初识laravel5
Mar 02 PHP
Laravel 5框架学习之Eloquent 关系
Apr 09 PHP
使用PHP接受文件并获得其后缀名的方法
Aug 05 PHP
详解WordPress中过滤链接与过滤SQL语句的方法
Dec 18 PHP
php连接oracle数据库的核心步骤
May 26 PHP
CodeIgniter集成smarty的方法详解
May 26 PHP
php mysql_list_dbs()函数用法示例
Mar 29 PHP
详解提高使用Java反射的效率方法
Apr 29 PHP
Laravel 验证码认证学习记录小结
Dec 20 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
PHP STRING 陷阱原理说明
2010/07/24 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
2020/09/17 PHP
window.event快达到全浏览器支持了,以后使用就方便了
2011/11/30 Javascript
js中判断数字\字母\中文的正则表达式 (实例)
2012/06/29 Javascript
JS 加入收藏夹的代码(主流浏览器通用)
2013/05/13 Javascript
深入分析js的冒泡事件
2014/12/05 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
2016/04/12 Javascript
判断是否存在子节点的实现代码
2016/05/18 Javascript
jQuery 遍历map()方法详解
2016/11/04 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
2017/02/24 Javascript
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
Angular2实现组件交互的方法分析
2017/12/19 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
vue实现跨域的方法分析
2019/05/21 Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
2019/11/12 Javascript
vue-quill-editor的使用及个性化定制操作
2020/08/04 Javascript
pygame 精灵的行走及二段跳的实现方法(必看篇)
2017/07/10 Python
Python中property属性实例解析
2018/02/10 Python
python之mock模块基本使用方法详解
2019/06/27 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
python 穷举指定长度的密码例子
2020/04/02 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
2020/08/19 Python
利用CSS3伪元素实现逐渐发光的方格边框
2017/05/07 HTML / CSS
澳大利亚音乐商店:Bava’s Music City
2019/05/05 全球购物
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
售后服务承诺书
2014/03/26 职场文书
《李时珍夜宿古寺》教学反思
2014/04/09 职场文书
八项规定个人对照检查材料思想汇报
2014/09/25 职场文书
护士2014年终工作总结
2014/11/11 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
认真学习保证书
2015/02/26 职场文书
2015年高校保卫处工作总结
2015/07/23 职场文书
2021-4-3课程——SQL Server查询【2】
2021/04/05 SQL Server