Browse Source

Improve OCI8 NLS env creation error messages (#58925)

pull/271/head
Christopher Jones 14 years ago
parent
commit
76d68f8dbd
  1. 9
      ext/oci8/oci8.c
  2. 1
      ext/oci8/package.xml

9
ext/oci8/oci8.c

@ -2901,11 +2901,20 @@ static OCIEnv *php_oci_create_env(ub2 charsetid TSRMLS_DC)
PHP_OCI_CALL_RETURN(OCI_G(errcode), OCIEnvNlsCreate, (&retenv, OCI_G(events) ? PHP_OCI_INIT_MODE | OCI_EVENTS : PHP_OCI_INIT_MODE, 0, NULL, NULL, NULL, 0, NULL, charsetid, charsetid));
if (OCI_G(errcode) != OCI_SUCCESS) {
sb4 ora_error_code = 0;
text ora_msg_buf[OCI_ERROR_MAXMSG_SIZE]; /* Use traditional smaller size: non-PL/SQL errors should fit and it keeps the stack smaller */
#ifdef HAVE_OCI_INSTANT_CLIENT
php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCIEnvNlsCreate() failed. There is something wrong with your system - please check that " PHP_OCI8_LIB_PATH_MSG " includes the directory with Oracle Instant Client libraries");
#else
php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME and " PHP_OCI8_LIB_PATH_MSG " are set and point to the right directories");
#endif
if (retenv
&& OCIErrorGet(retenv, (ub4)1, NULL, &ora_error_code, ora_msg_buf, (ub4)OCI_ERROR_MAXMSG_SIZE, (ub4)OCI_HTYPE_ENV) == OCI_SUCCESS
&& *ora_msg_buf) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ora_msg_buf);
}
return NULL;
}
return retenv;

1
ext/oci8/package.xml

@ -47,6 +47,7 @@ http://pear.php.net/dtd/package-2.0.xsd">
<license uri="http://www.php.net/license">PHP</license>
<notes>
Increased maximum possible Oracle DB error message length
Improve internal initalization failure error messages
</notes>
<contents>
<dir name="/">

Loading…
Cancel
Save