Hi,
ohne PDOs würde ich gerne ein CLOB entgegennehmen, den ich als Rückgabe aus einer Stored Procedure von Oracle enthalte. Ich habe nun schon einige Stunden probiert und gesucht, aber leider kein einigermaßen ähnliches Beispiel finden können. Auch die php-Referenz hat mir nicht so recht helfen können. Hier mein Ansatz:
Code:
// $sid ist die SESSION-ID die ich uebergebe, fuer die es einen User als "XML-CLOB" zurueck gibt
$stmt = oci_parse($conn, "DECLARE RetVal CLOB; P_SESSIONID VARCHAR2(200); BEGIN P_SESSIONID := '".$sid."'; RetVal := ABCSCHEMA.ABCINTERFACE.GETUSERIDBYSESSIONID ( P_SESSIONID ); END;");
// hier versuche ich "irgendwie" den "RetVal"-return als CLOB in $RetVal zu bekommen
$RetVal = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stmt, ":RetVal", $RetVal, -1, OCI_B_CLOB);
Darauf erhalte ich die Warnung:
Zitat:
|
Warning: oci_bind_by_name() [function.oci-bind-by-name]: Error while trying to retrieve text for error ORA-01036 in ...
|
Im Code geht es weiter:
Code:
oci_execute($stmt);
oci_result($stmt, $RetVal);
die($RetVal);
Führt zu:
Zitat:
|
Warning: oci_result() [function.oci-result]: Invalid column index "1" in ...
|
Leider habe ich keinen Einfluss auf die Schnittstelle an sich.
Hoffe das mir jemand helfen kann...
Viele Grüße,
erdnah