Oracle 12c。 我可以使用sqldeveloper远程连接到DB。 我可以用sqlplus连接到DB。
我无法使gii工作,显示错误:
引起:PDOException SQLSTATE [HY000]:pdo_oci_handle_factory:尝试检索错误的文本时出错ORA-01804 (/root/rpmbuild/BUILD/php-5.4.1/ext/pdo_oci/oci_driver.c:631)
此php代码生成相同的错误:
1 <?php
2 $param = $_POST;
3 $db_username = "<my username>";
4 $db_password = "<my password>";
5 $db = "oci:dbname=ORCL";
6 try{
7 $conn = new PDO($db,$db_username,$db_password);
8 $stmt = $conn->exec("select * from employee;");
9 }catch(PDOException $e){
10 echo ($e->getMessage());
11 }
12
13 ?>
我的phpinfo.php显示:PDO驱动程序sdblib,firebird,mysql,oci,odbc,pgsql,sqlite 但 php -i | grep pdo 没有显示pdo_oci
在phpinfo.php标题下&#34; PDO_OCI&#34;它没有条目。只是标题和列标题&#34; OCI 8及更高版本的#PDO驱动程序&#34; &#34;启用&#34;没有更多的数据行。
我已添加&#34; - with-pdo-oci = shared,$ ORACLE_HOME&#34;配置php编译并添加&#34; extension = pdo_oci.so&#34;到名为/etc/php.d/pdo_oci.ini的文件
这也是我的oracle timezone文件夹:
# ls /base/product/12.1.0/db_1/oracore/zoneinfo/
big timezlrg_11.dat timezlrg_16.dat timezlrg_3.dat timezlrg_8.dat timezone_12.dat timezone_17.dat timezone_4.dat timezone_9.dat
little timezlrg_12.dat timezlrg_17.dat timezlrg_4.dat timezlrg_9.dat timezone_13.dat timezone_18.dat timezone_5.dat timezone.dat
readme.txt timezlrg_13.dat timezlrg_18.dat timezlrg_5.dat timezlrg.dat timezone_14.dat timezone_1.dat timezone_6.dat
timezdif.csv timezlrg_14.dat timezlrg_1.dat timezlrg_6.dat timezone_10.dat timezone_15.dat timezone_2.dat timezone_7.dat
timezlrg_10.dat timezlrg_15.dat timezlrg_2.dat timezlrg_7.dat timezone_11.dat timezone_16.dat timezone_3.dat timezone_8.dat
timezone.dat和timezonelrg.dat是最大的sufix对应物的符号链接。
任何帮助将不胜感激。
答案 0 :(得分:1)
奇怪的错误。我通过这样做来解决它:
cp /base/product/12.1.0/db_1/inventory/Scripts/ext/lib/libociei.so /base/product/12.1.0/db_1/lib /
这意味着将libociei.so放在$ ORACLE_HOME / lib
中编码的评论给了我一些提示。从这里Oracle with node-oracle: Error while trying to retrieve text for error ORA-01804