php insert Oracle clob 欄位處理問題

來源:互聯網
上載者:User
如果接觸過mysql的話一定對mysql的text和blob不會陌生,在mysql中是直接操作text和blob的。但是在oracle中,它把lob做為一種特殊的欄位,不能直接進行操作--比如不能直接插入到lob欄位中,也不能用like查詢等等。     
  不能直接用INSERT語句向LOB欄位中插入值。一般情況下,有如下的幾步:    
  1   先分析一個INSERT語句,返回一個LOB的描述符    
  2   用OCI函數產生一個本地的LOB對象    
  3   將LOB對象綁定到LOB描述符上    
  4   執行INSERT語句    
  5   給LOB對象賦值    
  6   釋放LOB對象和SQL語句控制代碼     
 /*  
  //(tabel_name:article)DDL;   //just   for   test;    
  //create   table   article(id   number(11),content   clob);    
  */  
   
  //----------This   is   insert   test----------------------------------    
  $conn   =   @OCILogon("YourUsername","YourPassword","YourDatabase");  
   
  $stmt   =   @OCIParse($conn,"insert   into   article   values(1,EMPTY_CLOB())   RETURNING   content   INTO:CONTENT");    
  $clob   =   @OCINewDescriptor($conn,OCI_D_LOB);   
    OCIBindByName($stmt,':CONTENT',&$clob,-1,OCI_B_CLOB);
if(!OCIExecute($stmt, OCI_DEFAULT)) {print_r(OCIError($stmt));}
if($clob->save($CONT))
{
OCICommit($conn);
}
else
{
print_r(OCIError($stmt));
}     
  //---------------Insert   end-----------------------------------------  
   
   
  //---------------Select   start---------------------------------------  
  $sql   =   "select   content   from   article   order   by   id   desc";  
  $stmt   =   @OCIParse($conn,$sql);  
  @OCIExecute($stmt,OCI_DEFAULT);  
  @OCIFetchInto($stmt,&$rows,OCI_RETURN_LOBS);  
  echo   "<br>Content   is:\"".$rows[0]."\"";  
   
  //---------------Select   end-----------------------------------------

注意:測試時一定注意Oracle的保留關鍵字,經常使用OCIError來差錯。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.