ID: 24278 Comment by: nirfri at hotmail dot com Reported By: trent at low dot ru Status: Open Bug Type: OCI8 related Operating System: Linux, Win32 PHP Version: 4CVS-2003-08-15 (stable) New Comment:
nope.. doesnt work, my mistake. Nir Previous Comments: ------------------------------------------------------------------------ [2003-08-18 10:06:43] nirfri at hotmail dot com After Working on this annoying problem for 2 days in a row, Finally I found the solution. Thanks to ViVisimo.com :)) look in : <A HREF="http://www.faqchest.com/prgm/oracle-l/ora-01/ora-0109/ora-010939/ora01091712_19451.html">http://www.faqchest.com/prgm/oracle-l/ora-01/ora-0109/ora-010939/ora01091712_19451.html </A> for an example. in short. You need to edit your procedure so it will createtemporarly the clob before you can do anything with it. <B>DBMS_LOB.CREATETEMPORARY(myclob1,FALSE,DBMS_LOB.CALL);</B> HtH, Nir Friedman ------------------------------------------------------------------------ [2003-06-21 10:28:43] trent at low dot ru Description: ------------ I got these errors while trying to inputing string to LOB using LOB's method save(); : Warning: save() [function.save.html]: OCILobWrite: OCI_INVALID_HANDLE in /www/sample.php on line 15 Warning: load() [function.load.html]: OCILobGetLength: OCI_INVALID_HANDLE in /www/sample.php on line 19 This was tested with: 4.3.1-win32 4.3.1-linux Latest snapshot on Linux. Note: in oracle function there is in/out parameter used. Additional exception from Oracle: ORA-22275: invalid LOB locator specified. Reproduce code: --------------- //logging in $conn = OCILogon('user', 'pass', 'srvname'); //creating new LOB locator $clob = OCINewDescriptor($conn, OCI_D_LOB); $sql = 'begin :ret:=test(lob_object=>:lob_object_param); end;'; //parsing query - ok $stmt = OCIParse($conn, $sql); //binding variables - ok OCIBindByName($stmt, ':lob_object_param', &$clob, -1, OCI_B_CLOB); OCIDefineByName($stmt, ':lob_object_param', $clob, OCI_B_CLOB); OCIBindByName($stmt, ':ret', $return, 4); OCIExecute($stmt, OCI_DEFAULT); if($clob->save($param)) { // Warning: OCILobWrite: OCI_INVALID_HANDLE in sample.php on line 15 OCICommit($conn); // this warning appears only when using method save(); of LOB locator } print $clob->load(); // Warning: OCILobGetLength: OCI_INVALID_HANDLE in sample.php on line 19 // when using load method in LOB locator $clob->free(); OCIFreeStatement($stmt); Expected result: ---------------- I'm trying to save string as CLOB using Oracle function. I do expect it to work fine =) Maybe I'm doing something extremely wrong? If so, please, correct me. Thanx in advance. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=24278&edit=1