Oracle問題.大俠們請help me!

zhuzhichao 2001-07-24 02:06:23
我有一個存儲過程.創建時可以,但調用時出錯.
Oracle報錯:
ORA-20000: ORU-10028: line length overflow, limit of 255 bytes per line
我在script中查找,發現有一個varchar2型的變量賦值如下:
v_sql := 'INSERT INTO temp_status(id, fod00c,fod01c,fod02d,fod03c,fod04c,fod06c,fod11c,a0,a1,a2,a3,a4,' ||
'a5,a6,a7,a8,a9,a10,a11,a12,k1,k2,tba03c,sba02c) ' ||
' SELECT temp_status_seq.nextval, fod00c,fod01c,fod02d,fod03c,fod04c,fod06c,fod11c,' ||
'fia14c,0,0,0,0,0,0,0,0,0,0,0,0,fod19f,0,TRANSLATE(tba03c USING CHAR_CS),TRANSLATE(sba02c USING CHAR_CS) ' ||
' FROM fom04, fim01, tbm01, sbm01 ' ||
' WHERE fod00c = fia00c and fod11c = fia01c' ||
' AND tba010c = ''B'' and fod03c=tba011c' ||
' AND fod08c = sba01c';

將這段腳本縮減後就能執行.

現在我想詢問一下,有沒有辦法解決這個問題,例如說將其強制分行.
...全文
95 点赞 收藏 12
写回复
12 条回复
zhuzhichao 2001年07月24日
實在不能分行嗎?
回复 点赞
fita 2001年07月24日
把insert 后面的字段列表去掉,后面的select保证按照字段的物理顺序就可以缩短不少了
回复 点赞
zhuzhichao 2001年07月24日
多用||是沒有用的.
因為v_sql的值被賦後它就是一行.
回复 点赞
wx_zhang 2001年07月24日
就用‘||’多分几行嘛
回复 点赞
zhuzhichao 2001年07月24日
up
回复 点赞
hailong525 2001年07月24日
没办法!不过update应该可以呀!先insert,之后对该字段update吧!+
回复 点赞
zhuzhichao 2001年07月24日
up again
回复 点赞
zhuzhichao 2001年07月24日
up
回复 点赞
zhuzhichao 2001年07月24日
to hailong525(风云):
對呀,是一行中超過了255個byte,
現在我想分行處理,不知道怎麼做?
回复 点赞
hailong525 2001年07月24日
差不许多!一定是长度超过了255!
回复 点赞
zhuzhichao 2001年07月24日
to hailong525(风云):
我的是varchar2類型的呀.
而且只有insert呀.
回复 点赞
hailong525 2001年07月24日
oracle 对long类型数据的处理,很受限制!尤其在类似insert ..select...类型的语句中
没办法,改一种方式试试!可以先insert 之后再 update!
回复 点赞
发动态
发帖子
Sybase
创建于2007-09-28

2408

社区成员

2.5w+

社区内容

Sybase相关技术讨论区
社区公告
暂无公告