oracle long 字段类型的问题????

lingtw 2010-04-27 11:10:49
我现在有一个表,里面有一个long类型的字段,字段里面存储的是 83.362 82.284 81.422 80.862 80.431 80.000 ,这些内容,每个数字之间用空格分开,现在想把这些数字拆成表的形式,如下:

表内容:
83.362
82.284
81.422
80.862
80.431
80.000

请问大家有什么好的方法吗??????

是long类型的。
...全文
107 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liqzhangq 2010-04-28
  • 打赏
  • 举报
回复
顶一下
oracle QQ群:54775466
欢迎您的到来
大家一起探讨。
iqlife 2010-04-28
  • 打赏
  • 举报
回复
按照那个帖子里的没有办法转换?
你再去GOOGLE下,应该有方法转换的,ORACLE里转换不行,好像还有程序段的转换
好像程序前端的转换比较方便
lingtw 2010-04-28
  • 打赏
  • 举报
回复
有没有办法呀!!!!!
dingjun123 2010-04-27
  • 打赏
  • 举报
回复
不要使用long类型,这是遗留的东西,臭名昭著
tangren 2010-04-27
  • 打赏
  • 举报
回复
--这个
CREATE OR REPLACE PROCEDURE split_str(lstr IN LONG, sep IN VARCHAR2) IS
item VARCHAR2(200);
str VARCHAR2(30000);
BEGIN
SELECT lstr INTO str FROM dual;
str := sep || str || sep;
FOR i IN 1 .. length(str) - length(REPLACE(str, sep)) - 1 LOOP
item := substr(str,
instr(str, sep, 1, i) + 1,
instr(str, sep, 1, i + 1) -
instr(str, sep, 1, i) - 1);
END LOOP;
END;
/
iqlife 2010-04-27
  • 打赏
  • 举报
回复
http://rwl6813021.javaeye.com/blog/311228
原来将LONG转换为VARCHAR2这么麻烦
还好从来就很听ORACLE的话,没有用LONG类型
lingtw 2010-04-27
  • 打赏
  • 举报
回复
拆字符串只能对nvchar2的类型进行拆分,不能对long类型字段。。。。。
iqlife 2010-04-27
  • 打赏
  • 举报
回复
CREATE OR REPLACE FUNCTION V_splitstr(p_string IN VARCHAR2, p_delimiter IN VARCHAR2)
RETURN str_split
PIPELINED
AS
v_length NUMBER := LENGTH(p_string);
v_start NUMBER := 1;
v_index NUMBER;
BEGIN
WHILE(v_start <= v_length)
LOOP
v_index := INSTR(p_string, p_delimiter, v_start);

IF v_index = 0
THEN
PIPE ROW(SUBSTR(p_string, v_start));
v_start := v_length + 1;
ELSE
PIPE ROW(SUBSTR(p_string, v_start, v_index - v_start));
v_start := v_index + 1;
END IF;
END LOOP;

RETURN;
END V_splitstr;


拆分字符串函数
lingtw 2010-04-27
  • 打赏
  • 举报
回复
我现在解决的就是,遗留问题。。。。。。

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧