简单问题:(30分)

  • 主题发起人 主题发起人 hzgood
  • 开始时间 开始时间
H

hzgood

Unregistered / Unconfirmed
GUEST, unregistred user!
HI:
一个小问题:表TEXT1(ORACLE数据库):
T1 VARCHAR(4000),
T2 VARCHAR(4000),
T3 VARCHAR(4000),
T4 VARCHAR(4000),
LO LONG,
以上为表结构。现在UPDATE LO=T1||T2||T3||T4;也就是把T1--T4的内容转存入LO字段中;
我用了‘||’,concate都报错 ‘SQL语句字符串太长’;???????
 
看来主要是 4000+4000+4000+4000=160000 超过了varchar的长度
update xxx set lo=t1;
update xxx set lo=lo||t2;
update xxx set lo=lo||t3;
update xxx set lo=lo||t4;
分成4次,不知道行不行,关键是lo||不知道行不行,你试试
 
update ?? set lo=lo||t3;
北京吗?
 
long型字段好像不能这样操作的。。用pl/sql或将字段转换..
var
aa:tstream;
begin
query1.sql.text:='select T1||T2||T3||T4 from...';
query1.open;
aa:=Query1.CreateBlobStream(query1.Fields[0],bmReadWrite);
query2.sql.text:='UPDATE ....set.LO=:lo'
Query1.Params[0].LoadFromStream(aa,ftBlob);
至于pl/sql我自已正在看。。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
I
回复
0
查看
473
import
I
后退
顶部