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 相关文章推荐
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
Mar 27 PHP
PHP中通过语义URL防止网站被攻击的方法分享
Sep 08 PHP
php中设置index.php文件为只读的方法
Feb 06 PHP
php常用ODBC函数集(详细)
Jun 24 PHP
php常见的魔术方法详解
Dec 25 PHP
PHP中把对象转换为关联数组代码分享
Apr 09 PHP
CodeIgniter自定义控制器MY_Controller用法分析
Jan 20 PHP
Symfony2在Nginx下的配置方法图文教程
Feb 04 PHP
php实现微信模板消息推送
Mar 30 PHP
php web环境和命令行环境下查找php.ini的位置
Jul 17 PHP
解决php extension 加载顺序问题
Aug 16 PHP
PHP 使用位运算实现四则运算的代码
Mar 09 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
造势之举?韩国总统候选人发布《星际争霸》地图
2017/04/22 星际争霸
PHP用户指南-cookies部分
2006/10/09 PHP
php生成带logo二维码方法小结
2016/04/08 PHP
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
js indexOf()定义和用法
2012/10/21 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
js动态控制table的tr、td增加及删除的具体实现
2014/04/30 Javascript
浅析JavaScript中的事件机制
2015/06/04 Javascript
javascript作用域问题实例分析
2015/07/13 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
2016/04/17 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
bootstrap输入框组使用方法
2017/02/07 Javascript
js轮播图的插件化封装详解
2017/07/17 Javascript
简单实现vue验证码60秒倒计时功能
2017/10/11 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
三种Webpack打包方式(小结)
2018/09/19 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
layui 根据后台数据动态创建下拉框并同时默认选中的实例
2019/09/02 Javascript
[01:14]TI珍贵瞬间系列(六):冠军
2020/08/30 DOTA
Python基于辗转相除法求解最大公约数的方法示例
2018/04/04 Python
Python不使用int()函数把字符串转换为数字的方法
2018/07/09 Python
Python random库使用方法及异常处理方案
2020/03/02 Python
css3媒体查询中device-width和width的区别详解
2020/03/27 HTML / CSS
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
比驿:全球酒店比价网
2018/06/20 全球购物
牦牛毛户外探险服装:Kora
2019/02/08 全球购物
应届生文秘专业个人自荐信格式
2013/09/21 职场文书
高一地理教学反思
2014/01/18 职场文书
优秀安全员事迹材料
2014/05/11 职场文书
网站推广策划方案
2014/06/04 职场文书
培训研修方案
2014/06/06 职场文书
小学生运动会通讯稿
2014/09/23 职场文书
公司辞职信模板
2015/05/13 职场文书
大学生党员暑假实践(活动总结)
2019/08/21 职场文书
Python下opencv库的安装过程及问题汇总
2021/06/11 Python