[PHP-users 31083] php5.1.4 で "OCI-Lob->load" は使用可能でしょうか?

fwgf8293 @ mb.infoweb.ne.jp fwgf8293 @ mb.infoweb.ne.jp
2006年 12月 20日 (水) 12:30:48 JST


PHPからOracelのCLOB型項目のデータを取得するには、OCI8関数の
"OCI-Lob->load"を使用しなければならないとWEBで知り、
PHP5.1.4にて"OCI-Lob->load"を使用したスクリプトを実行したところ、
Apacheが落ちてしまう事象が発生しました。
これは、PHP5.1.5、5.1.6でも同様でした。

OCI-Lob->loadの箇所を除けば問題なく稼動し、また、PHP5.2.0では
問題なく稼動します。
※PHP5.2.0では"OCI-Lob->load"だけでなく通常の結果配列から直接の
 取得もできました。

PHPは初心者なので環境設定が足らない可能性もあるのですが、
どうもPHP5.1.4でOCI-Lob->loadが正常に動作しないのではと
思えています。
PHP5.1.4では、OCI-Lob->loadを使用したCLOB型項目からの
データ取得はできないのでしょうか?

何かお分かりになる方がいらっしゃいましたら教えて頂きたく存じます。
宜しくお願いいたします。

【環境】
・PHP:5.1.4(Windows Binaries ZIP形式)
・OS:WindowsServer2003
・DB:Oracle10g R1
・表:次のCreate文で生成したもの。
   CREATE TABLE MYTABLE (mykey NUMBER, myclob CLOB)
・スクリプト、エラーメッセージ:以下にそれぞれ記載します。

(スクリプト)
<?php         
 $conn = oci_connect('user', 'pass', 'orcl');
 
 $sql = 'SELECT myclob FROM MYTABLE' ;
 $stmt = OCIParse($conn, $sql);
 OCIExecute($stmt,OCI_DEFAULT);

 print '<table border="1">';
 while ($row = oci_fetch_array($stmt, OCI_ASSOC)) {
  $result = $row['MYCLOB']->load();
  print '<tr><td>'.$result.'</td></tr>';
 }
 print '</table>';

 OCIFreeStatement($stmt);
?>

(エラーメッセージ)
  問題が発生したため、Apache HTTP Server を終了します。 
  ご不便をおかけして申し訳ありません。
  
  エラーの詳細に記載されたエラー署名
  szAppName : Apache.exe     szAppVer : 2.0.58.200     
  szModName : php5ts.dll  szModVer : 5.1.4.4     
  offset : 000194a9

  Apacheのエラーログ内容
  [notice] Parent: child process exited with status 3221225477 -- Restarting
.
  [notice] Apache/2.0.58 (Win32) PHP/5.1.6 configured -- resuming normal ope
rations
  [notice] Server built: Apr 29 2006 17:47:10
  [notice] Parent: Created child process 1204
  [notice] Child 1204: Child process is running
  [notice] Child 1204: Acquired the start mutex.
  [notice] Child 1204: Starting 250 worker threads.



PHP-users メーリングリストの案内