0

Oracle 12c. I can connect remotely to DB with sqldeveloper. I can connect with sqlplus to DB.

I can't make gii to work, shows error:

Caused by: PDOException SQLSTATE[HY000]: pdo_oci_handle_factory: Error while trying to retrieve text for error ORA-01804 (/root/rpmbuild/BUILD/php-5.4.1/ext/pdo_oci/oci_driver.c:631)

This php code generates the same error:

  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 ?>

My phpinfo.php shows: PDO driver sdblib, firebird, mysql, oci, odbc, pgsql, sqlite but php -i | grep pdo doesn't show pdo_oci

In phpinfo.php under the title "PDO_OCI" it has no entries. Just the title and column titles "PDO Driver for OCI 8 and later" "enabled" no more rows with data.

I've added "--with-pdo-oci=shared,$ORACLE_HOME" to configure php compilation and added "extension=pdo_oci.so" to a file called /etc/php.d/pdo_oci.ini

Also this is my oracle timezone folder:

 # 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 and timezonelrg.dat are symbolic links to the biggest sufix counterpart.

Any help will be appreciated.

4

1 回答 1

1

Weird error. I fix it by doing this:

cp /base/product/12.1.0/db_1/inventory/Scripts/ext/lib/libociei.so /base/product/12.1.0/db_1/lib/

That means putting libociei.so in $ORACLE_HOME/lib

The comment of codingFun gave me the hint. From here Oracle with node-oracle: Error while trying to retrieve text for error ORA-01804

于 2014-07-08T19:06:31.223 回答