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生成html分页列表的代码
Mar 18 PHP
用PHP读取flv文件的播放时间长度
Sep 03 PHP
PHP 采集程序中常用的函数
Dec 09 PHP
PHP 解决utf-8和gb2312编码转换问题
Mar 18 PHP
浅析PHP绘图技术
Jul 03 PHP
php获取域名的google收录示例
Mar 24 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
Jul 05 PHP
PHP准确取得服务器IP地址的方法
Jun 02 PHP
php微信支付接口开发程序
Aug 02 PHP
laravel框架语言包拓展实现方法分析
Nov 22 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
Apr 26 PHP
PHP常量及变量区别原理详解
Aug 14 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对gzip文件或者字符串解压实例参考
2008/07/25 PHP
解读PHP中的垃圾回收机制
2015/08/10 PHP
php+ajax实现文件切割上传功能示例
2020/03/03 PHP
jquery 必填项判断表单是否为空的方法
2008/09/14 Javascript
javascript显示隐藏层比较不错的方法分析
2008/09/30 Javascript
textarea 控制输入字符字节数(示例代码)
2013/12/27 Javascript
C#中使用迭代器处理等待任务
2015/07/13 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
jQuery绑定自定义事件的魔法升级版
2016/06/30 Javascript
JS构造函数与原型prototype的区别介绍
2016/07/04 Javascript
详解Node.js如何开发命令行工具
2016/08/14 Javascript
浅谈jQuery效果函数
2016/09/16 Javascript
jQuery实现手机上输入后隐藏键盘功能
2017/01/04 Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
2017/02/08 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
2017/06/09 jQuery
JS实现多物体运动的方法详解
2018/01/23 Javascript
nodejs各种姿势断点调试的方法
2020/06/18 NodeJs
详解JavaScript 的执行机制
2020/09/18 Javascript
js实现弹幕墙效果
2020/12/10 Javascript
[50:34]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python环境下搭建属于自己的pip源的教程
2016/05/05 Python
JSON Web Tokens的实现原理
2017/04/02 Python
解决已经安装requests,却依然提示No module named requests问题
2018/05/18 Python
python 3.7.0 下pillow安装方法
2018/08/27 Python
pytorch 实现打印模型的参数值
2019/12/30 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
2020/02/19 Python
Python常用模块函数代码汇总解析
2020/08/31 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
2020/11/06 Python
造型师求职自荐信
2013/09/27 职场文书
小学教师的个人自我鉴定
2013/10/26 职场文书
高中生期末评语
2014/01/28 职场文书
2014年道德讲堂实施方案
2014/03/05 职场文书
会计专业毕业生求职信
2014/07/04 职场文书
nginx网站服务如何配置防盗链(推荐)
2021/03/31 Servers
Python 中random 库的详细使用
2021/06/03 Python