oracle的BUG

浏览:635 发布日期:2014/11/21 分类:技术分享 关键字: oracle 数据库
总结了些oracle的BUG,分享如下:
主要为修改ThinkPHP/Library/Think/Db/Driver/Oracle.class.php
1、connect方法参数不全,没有主机名,端口等参数。导致配置文件链接方法失效,第50行修改为$this->linkID[$linkNum] = $conn($config['username'], $config['password'],$config['hostname'].':'.$config['hostport'].'/'.$config['database']);
2、事务不起作用,原因为每次执行sql的时候,代码$this->mode = OCI_COMMIT_ON_SUCCESS;这句话都写死赋值为自动提交,事务失效,屏蔽掉就好。第二个地方为query方法没有给oci传递事务参数,第91行改为 if (false === oci_execute($this->queryID, $this->mode)) {,传递$this->mode参数。
3、由于ORACLE数据库字段默认都为大写,导致getFields方法不起作用。修改其中数组部分为:
$info[$val['COLUMN_NAME']] = array(
'name' => $val['COLUMN_NAME'],
'type' => $val['DATA_TYPE'],
'notnull' => $val['NOTNULL'],
'default' => $val['DATA_DEFAULT'],
'primary' => $val['PK'],
'autoinc' => $val['PK'],
);
即把小写都改为大写。

以后大家谁用ORACLE发现其他问题,可以补充,共同完善。
最佳答案
评论( 相关
后面还有条评论,点击查看>>