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 随机记录mysql rand()造成CPU 100%的解决办法
May 18 PHP
php简单的会话类代码
Aug 08 PHP
非常精妙的PHP递归调用与静态变量使用
Dec 16 PHP
php变量作用域的深入解析
Jun 03 PHP
解析PHP的session过期设置
Jun 29 PHP
php ZipArchive压缩函数详解实例
Nov 06 PHP
PHP中Session引起的脚本阻塞问题解决办法
Apr 08 PHP
php正则匹配html中带class的div并选取其中内容的方法
Jan 13 PHP
php图片水印添加、压缩、剪切的封装类实现
Apr 18 PHP
php 生成签名及验证签名详解
Oct 26 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 PHP
PHP中关于php.ini参数优化详解
Feb 28 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
全国FM电台频率大全 - 11 浙江省
2020/03/11 无线电
php下实现伪 url 的超简单方法[转]
2007/09/24 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
2016/06/13 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
PHP实现八皇后算法
2019/05/06 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
JavaScript 封装Ajax传递的数据代码
2009/06/05 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
JS清除IE浏览器缓存的方法
2013/07/26 Javascript
js中的屏蔽的使用示例
2013/07/30 Javascript
js Dialog 去掉右上角的X关闭功能
2014/04/23 Javascript
js给selected添加options的方法
2015/05/06 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
详解Javascript事件驱动编程
2016/01/03 Javascript
js替换字符串中所有指定的字符(实现代码)
2016/08/17 Javascript
原生js实现选项卡功能
2017/03/08 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
vue-cli 首屏加载优化问题
2018/11/06 Javascript
Vue.js数字输入框组件使用方法详解
2019/10/19 Javascript
JS实现简单的表格增删
2020/01/16 Javascript
[00:57]深扒TI7聊天轮盘语音出处5
2017/05/11 DOTA
Python_查看sqlite3表结构,查询语句的示例代码
2019/07/17 Python
keras CNN卷积核可视化,热度图教程
2020/06/22 Python
通过实例了解python__slots__使用方法
2020/09/14 Python
python自动生成证件号的方法示例
2021/01/14 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
管理学院毕业生自荐信范文
2014/03/10 职场文书
初一学生评语大全
2014/04/24 职场文书
2015年数学教师工作总结
2015/05/20 职场文书
新手必备之MySQL msi版本下载安装图文详细教程
2021/05/21 MySQL
MySQL中使用or、in与union all在查询命令下的效率对比
2021/05/26 MySQL
MySQL数据库如何给表设置约束详解
2022/03/13 MySQL
Kubernetes部署实例并配置Deployment、网络映射、副本集
2022/04/01 Servers