全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2640
推到 Plurk!
推到 Facebook!

存入4000以上字串,出現錯誤 -> ORA-01704: 字串內容過長

答題得分者是:懷舊的人
allen_m2k
一般會員


發表:3
回覆:3
積分:1
註冊:2006-07-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-10-27 17:00:10 IP:123.205.xxx.xxx 訂閱
小弟使用ADOQuery + Oracle 9i 寫入型態為CLOB的欄位
字串長度超過4000以上,最長達1萬多
寫入時出現錯誤ORA-01704: 字串內容過長
不知道是String 還是 ADO 或是Oracle 有問題

var ls_sql:string;
begin
ls_sql:='Insert into xxx values(.....)';//某欄位資料長度超過4000
ADOQuery.SQL.Text:=ls_sql;
ADOQuery.ExecSQL;
end;


小弟問過朋友,CLOB可以存超過4000以上的字串
所以不知道哪裡出了問題,請各位前輩賜教。
懷舊的人
高階會員


發表:28
回覆:152
積分:141
註冊:2003-01-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-10-27 21:05:49 IP:211.78.xxx.xxx 訂閱

===================引 用 allen_m2k 文 章===================
var ls_sql:string;
begin
ls_sql:='Insert into xxx values(.....)';//某欄位資料長度超過4000
ADOQuery.SQL.Text:=ls_sql;
ADOQuery.ExecSQL;
end;

直接用 INSERT INTO VALUES 的長度都會有限制 改用參數帶進去就可以了

ADOQUERY.CLOSE;
ADOQUERY.SQL.CLEAR;
ADOQUERY.SQL.ADD('INSERT INTO XXX VALUES (...,:CLOBFIELD,..)');
ADOQUERY.PARAMETERS.PARAMBYNAME('CLOBFIELD').VALUE := CLOBSTRING;
ADOQUERY.EXECSQL;
allen_m2k
一般會員


發表:3
回覆:3
積分:1
註冊:2006-07-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-10-28 09:39:04 IP:123.205.xxx.xxx 訂閱
使用參數的方式,就可以順利寫入4000字以上的內容了

感謝您的幫助 ^_^
系統時間:2024-05-03 4:23:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!