ThinkPHP+Oracle执行存储过程
来源:互联网 发布:软件开发知识库 编辑:程序博客网 时间:2024/05/22 09:57
ThinkPHP+Oracle执行存储过程。
/** +---------------------------------------------------------- * 执行存储过程 +---------------------------------------------------------- * @author hongping <hongping626@qq.com> +---------------------------------------------------------- * @param string $pName 存储过程名称 * @param array $pValue 传入参数值 +---------------------------------------------------------- * @return array 返回执行结果 +---------------------------------------------------------- */ public function execProcedure($pName,$pValue) { $pValue = array_change_key_case($pValue, CASE_LOWER);//强制下标为小写 $this->initConnect(true); if ( !$this->_linkID ) return false; //更改事务模式 $this->mode = OCI_COMMIT_ON_SUCCESS; //释放前次的查询结果 if ( $this->queryID ) $this->free(); N('db_write',1); // 记录开始执行时间 G('queryStartTime'); $argSql = "SELECT ARGUMENT_NAME,IN_OUT FROM USER_ARGUMENTS WHERE OBJECT_NAME = '".strtoupper($pName)."' ORDER BY SEQUENCE"; $argRow = $this->query($argSql); $ParStr = ''; $x = 0; foreach($argRow as $key=>$value){ if($x==0){ $ParStr .= ":".$value['argument_name']; }else{ $ParStr .= ",:".$value['argument_name']; } $x++; } $this->queryID = oci_parse($this->_linkID, 'BEGIN '.$pName.'('.$ParStr.');END;'); foreach($argRow as $key=>$value){ $parmName = strtolower($value['argument_name']); $parmType = strtolower($value['in_out']); if($parmType==='out'){ oci_bind_by_name($this->queryID, ":".$parmName, $OutData[$parmName],2048); }else{ $OutData[$parmName] = $pValue[$parmName]; oci_bind_by_name($this->queryID, ":".$parmName, $OutData[$parmName],2048); } } oci_execute($this->queryID); $this->debug(); if (!$this->queryID) { $this->error(); return $this->queryID; }else { return $OutData; } }
二、然后在ThinkPHP\Lib\Core\Model.class.php加入以下(1185行左右):
一、首先修改ThinkPHP3.0的Oracle驱动(ThinkPHP\Lib\Driver\Db\DbOracle.class.php),在DbOracle类中增加以下方法:
二、然后在ThinkPHP\Lib\Core\Model.class.php加入以下(1185行左右):
- /**
- +----------------------------------------------------------
- * 执行oracle存儲過程
- +----------------------------------------------------------
- * @access public
- +----------------------------------------------------------
- * @param string $sql SQL指令
- * @param array $parr 传入传出参数值
- * @param boolean $parse 是否需要解析SQL
- +----------------------------------------------------------
- * @return false | integer
- +----------------------------------------------------------
- */
- public function execProcedure($sql,$parr,$parse=false) {
- $sql = $this->parseSql($sql,$parse);
- return $this->db->execProcedure($sql,$parr);
- }
- public function testPub(){
- $data['name'] = $_POST['name']; //存储过程传入参数
- $data['value'] = $_POST['value']; //存储过程传入参数
- $pdName = "PUB_TEST_KT";/*存储过程名*/
- $result =M() ->execProcedure($pubName,$pubParm);//执行
- $this->success($result['res']);//返回结果
0 0
- ThinkPHP+Oracle执行存储过程
- oracle执行存储过程
- oracle 存储过程执行
- ThinkPHP执行调用存储过程添加日志
- oracle中执行存储过程
- oracle中执行存储过程
- 定时执行Oracle存储过程
- oracle 定时执行存储过程
- Oracle存储过程执行权限 .
- ORACLE 定时执行存储过程
- Oracle定时执行存储过程
- Oracle 定时执行存储过程
- oracle 定时执行存储过程
- oracle 执行动态存储过程
- java 执行 oracle 存储过程
- ORACLE 定时执行存储过程
- ORACLE 定时执行存储过程
- oracle执行存储过程语句
- 关于中标麒麟系统的经历
- 关于整数后移问题(简单应用)
- xcode6.2 自制framework
- 归档—监控ORACLE数据库告警日志
- annotation 注解做springmvc 的登录权限校验案例
- ThinkPHP+Oracle执行存储过程
- 28377 GPIO模块
- 佳佳盈:齐鲁银行申请挂牌新三板 证监会要求解释不良率
- github优秀项目
- js 当鼠标移动到表格一行上时,该行背景颜色改变
- POJ1338——丑数
- WP--蓝牙编程
- 数据结构:图的邻接矩阵存储实现
- C语言 开放寻址法HASH表存储简单实现