2009/3/6

php 對 oracle clob 的新增與修改《童顏未老人》

php 要運作 oracle 的 clob 時,若沒有特別去處理的話,每次增改的字串長度還是會受到限制。這方法我每次用過就會忘了, 特別記錄下來 , 以免以後又要找一遍。

( 註 : 我是採用 ADODB 的 )

假設我的 table 是這樣的 :

create table docfile (
DocID Number Not Null,
DocTitle Varchar2(100 byte),
DocCont Clob,
TX_DATE Date Default sysdate );

今天若要增加一筆 record 進去的話
$ID = 1422;
$Title = '我愛美女';
$DocCont = '我愛林志玲,隋棠,蕭薔,'.......(設有數千字 )


$sql = "insert into docfile ( DocID,DocTitle,DocCont,tx_date) values ( ";
$sql .= $ID.",'".$Title."',empty_clob(),sysdate)";
$conn->Execute($sql);

資料已 insert 進去了

然後 執行

$conn->UpdateClob('docfile','docCont',$DocCont,'docid='.$ID);

如此一來便不怕字串會有長了!

若要 update 的話, 就更簡單了, 直接執行便可
$sql = "update docfile set doccont = empty_clob() where docid = ".$ID;
$conn->Execute($sql);
$conn->UpdateClob('docfile','docCont',$DocCont,'docid='.$ID);


!!!