Jira issue originally created by user adrive:
When I am trying to connect to Oracle instance with another charset then specified in my environment variable NLS_LANG I got an error.
$connectionOptions['oracle'] = array(
'driver' => 'oci8',
'dbname' => 'BOOK',
'user' => 'doctrine',
'password' => 'doctrine',
'charset' => 'AL32UTF8',
$em = EntityManager::create($connectionOptions['oracle'], $config, $evm);
Produce error messages:
PHP Warning: oci_error() expects parameter 1 to be resource, boolean given in /www/test/doctrine2/vendor/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Connection.php on line 149
PHP Fatal error: Uncaught exception 'Doctrine\DBAL\Driver\OCI8\OCI8Exception' in /www/test/doctrine2/vendor/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Connection.php:42
There is bug in OCI8Connection::errorInfo() and ::errorCode(). When ociconnect failed, it returns a boolean - false. but oci_error() accepts only resource as parameter. Therefor it is neccessary to check, whether $this->dbh is resource.
When I've fixed the error handling, I've got the right error, why I couldn't connect to Oracle:
PHP Fatal error: Uncaught exception 'Doctrine\DBAL\Driver\OCI8\OCI8Exception' with message 'ORA-12154: TNS:could not resolve the connect identifier specified' in /www/test/doctrine2/vendor/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Exception.php:28
That's because ociconnect accepts as connection string only TNS name, or Oracle Connection string. But `;charset=` in TNS name or connection string is invalid. oci*connect has 4th parameter charset for that purpose.
Comment created by adrive:
Fixed in https://github.com/milokmet/dbal/tree/[DBAL-60](http://www.doctrine-project.org/jira/browse/DBAL-60)
Comment created by @beberlei:
Issue was closed with resolution "Fixed"
Comment created by userua:
Can you help me. I'm having same problem. But your link doesn't work.
You must have very old source code. The bug was fixed 2 years ago. Just compare your OCI8 driver with https://github.com/doctrine/dbal/tree/master/lib/Doctrine/DBAL/Driver/OCI8