Oracle + PHP + CLOB

senich

Новичок
Oracle + PHP + CLOB

доброе утро. может кто подскажет как корректно передать blob, clob процедуре. пытаюсь делать так
PHP:
$file=fopen($name,"r");                                                                                
$data="";                                                                                              
while (!feof($file))                                                                                   
{                                                                                                      
    $data.=fread($file, 1024);                                                                         
}                                                                                                      
fclose($file);                                                                                         
if (strlen($data)==0) $data="file is empty.";                                                          
$str=                                                                                                  
    "declare data_lob blob;                                                                            
     begin                                                                                             
       Sp_TEK_Magazine_Save($date_maket,$name_doc,data_lob);                                           
     :data:=data_lob;                                                                                  
     end;";                                                                                            
putenv("NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251");                                                           
putenv("ORACLE_HOME=/opt/ora9/product/9.2");                                                           
putenv("ORA_NLS33=/opt/ora9/product/9.2/ocommon/nls/admin/data");                                      
putenv("ORACLE_SID=dev");                                                                              
                                                                                                       
$err="";                                                                                               
$stmt = OCIParse($this->conn, $str);
if (!$stmt)                                                                                            
{                                                                                                      
    $err=oci_error($stmt);                                                                             
    $str_err=$err['message']."\n<br>".$err['sqltext']."\n<br>".$err['offset'];                         
    $this->send_message($str_err);                                                                     
                                                                                                       
    return -1;                                                                                         
}                                                                                                      
                                                                                                       
$blob = OCINewDescriptor($this->conn, OCI_D_LOB);
$res=null;                                                                                             
$r=OCIBindByName($stmt, ':data', &$blob, -1, OCI_B_CLOB);
ну и при вызове выскакиевает мол неверный тип данных. стандартный пример с Google
не помогает.
 

tony2001

TeaM PHPClub
>putenv("ORACLE_HOME=/opt/ora9/product/9.2");
все переменные реды окружения должны быть установлены ДО старта апача.
соотв-но, putenv() не подходит.
это требование не PHP и не OCI8, а оракловых библиотек.

>выскакиевает мол неверный тип данных
я не знаю такого сообщения об ошибке "мол неверный тип данных".
плз, _копируй_ сообщение об ошибке, а не пересказывай.
 

EugeneVC

Новичок
каждая ошибка у оракла имеет номер
типа ORA-342344

очень удобно потом искать в google
 
Сверху