OCITypeByName and kgepop: **** 21522 error
Date: Tue, 28 Jan 2003 19:33:14 +0000
Message-ID: <2449602.1043782394_at_dbforums.com>
Hi,
I am maintaining the official Oracle extension for PHP. Some of the OCICollection functionality does a few funny things.
The following piece of C code:
OCITypeByName( connection->session->pEnv
,connection->pError
,connection->pServiceContext
,(CONST text *) (ac==3? Z_STRVAL_PP(schema) : 0)
,(ub4) (ac==3? Z_STRLEN_PP(schema) : 0)
,(CONST text *) Z_STRVAL_PP(tdo)
,(ub4) Z_STRLEN_PP(tdo)
,(CONST text *) 0
,(ub4) 0
,OCI_DURATION_SESSION
,OCI_TYPEGET_ALL
,&coll->tdo
)
Produces two kinds of behavior:
- if the third parameter not passed (schema) the call to this function ends up with:
kgepop: no error frame to pop to for error 21522
which is a permanent error killing PHP/Apache process.
2. if the schema is passed, even so it is correct, the error
message appears:
OCI-22303: type "SCHEMA"."TYPE" not found
This is does not happen everywhere, but currently on WinXP, Oracle 9.0.1 through PHP in CLI mode.
I saw no solutions for that and have no clue what is going on. Why passing a string for Schema gives an error and passing a null halts the process? What the hell kgepop is anyway?
P.S: the full code is available here:
http://cvs.php.net/co.php/php4/ext/oci8/oci8.c?login=2
P.S: whoever has PHP installed anywhere with OCI8 extension, try up
this example:
<?
$conn = OCILogon('scott', 'tiger');
$coll = OciNewCollection($conn, 'type_that_does_not_exist');
// should produce the crash
?>
Any hits would be greatly appreciated,
Thanks
-- Posted via http://dbforums.comReceived on Tue Jan 28 2003 - 20:33:14 CET