首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

求教一条SQL解决思路

2012-03-09 
求教一条SQL比如oracle中有一个表(X_TM_CONFIG)有字段CONFIG_ID NUMBER,CONFIG_VALUE CLOB--这个字段以前

求教一条SQL
比如oracle中有一个表(X_TM_CONFIG)有字段CONFIG_ID NUMBER,CONFIG_VALUE CLOB--这个字段以前在4000范围内通过to_char(CONFIG_VALUE)转化为字符串好控制,现在维护有可能远远超过4000的长度,现在的要求就是把这个字段截取分段显示出来,以3500为长度分段截取
比如显示结果:
CONFIG_ID CONFIG_VALUE CONFIG_VALUE1 CONFIG_VALUE1  
1 xmlfeifdkafdifdafkaffifd(3500内)
2 iddiiiiiiiiiiiiiiiiiiiiii(3500外7000内) aaaaa
3 iddiiiiiiiiiiiiiiiiiiiiii(3500外7000外) daaaaafdfdfdafa fdfdffdf
............................
 

[解决办法]
substr(CONFIG_VALUE CLOB, 1, 3500), substr(CONFIG_VALUE CLOB,3501, 3500)
分段截取下不就行了?
[解决办法]
写存储过程吧
大致是这样的,楼主参考下

select ceil(max(length(t.congif_value))/3500) from X_TM_CONFIG;
--CONFIG_VALUE可拆分的最大列数

SQL code
……type value_type is table of number index by pls_integer;v_value value_type;beginfor i in 1 .. n loopselect substr(t.congif_value,(n-1)*3500+1,3500) into v_value(n) from X_TM_CONFIG;end ;……
[解决办法]
支持上楼
[解决办法]
可以使用substr对clob数据进行操作。
截取子串罢。

热点排行