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 相关文章推荐
桌面中心(一)创建数据库
Oct 09 PHP
封装一个PDO数据库操作类代码
Sep 09 PHP
一步一步学习PHP(4) php 函数 补充2
Feb 15 PHP
新手学习PHP的一些基础知识分享
Jul 27 PHP
三个类概括PHP的五种设计模式
Sep 05 PHP
七款最流行的PHP本地服务器分享
Feb 19 PHP
kohana框架上传文件验证规则写法示例
Jul 14 PHP
php的4种常见运行方式
Mar 20 PHP
php实现搜索类封装示例
Mar 31 PHP
php-fpm超时时间设置request_terminate_timeout资源问题分析
Sep 27 PHP
laravel-admin自动生成模块,及相关基础配置方法
Oct 08 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
Nov 10 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设计模式 Prototype (原型模式)代码
2011/06/26 PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
2014/04/24 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
PHP判断一个变量是否为整数、正整数的方法示例
2019/09/11 PHP
jQuery下的动画处理总结
2013/10/10 Javascript
JS 打印界面的CSS居中代码适用所有浏览器
2014/03/19 Javascript
javascript下拉框选项单击事件的例子分享
2015/03/04 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
2016/06/12 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
2018/05/21 Javascript
vue多页面项目中路由使用history模式的方法
2019/09/23 Javascript
vue-cli和v-charts实现可视化图表过程解析
2019/10/08 Javascript
微信小程序调用后台service教程详解
2020/11/06 Javascript
[02:58]献给西雅图的情书_高清
2014/05/29 DOTA
[38:32]完美世界DOTA2联赛循环赛 Forest vs DM 第二场 11.06
2020/11/06 DOTA
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
2013/11/28 Python
从零学python系列之教你如何根据图片生成字符画
2014/05/23 Python
对Python 数组的切片操作详解
2018/07/02 Python
django+echart绘制曲线图的方法示例
2018/11/26 Python
TensorBoard 计算图的查看方式
2020/02/15 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
2020/06/09 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
利用python爬取有道词典的方法
2020/12/08 Python
CSS3使用transition实现的鼠标悬停淡入淡出
2015/01/09 HTML / CSS
使用phonegap进行本地存储的实现方法
2017/03/31 HTML / CSS
机械系大学毕业生推荐信
2013/11/27 职场文书
医科大学生的自我评价
2013/12/04 职场文书
财务管理专业自荐信范文
2013/12/24 职场文书
软件项目开发计划书
2014/05/01 职场文书
销售口号大全
2014/06/11 职场文书
诚信考试标语
2014/06/24 职场文书
授权委托书范文
2014/07/31 职场文书
2014小学年度工作总结
2014/12/20 职场文书
2015年个人剖析材料范文
2014/12/29 职场文书
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书