|
|
为什么问个问题么人回答,都问过两个问题没人回答,这个网站的问题还是我请教的方式有问题呢
|
|
20分 |
就正常的split 分割 。
|
我是要在存储过程中写,好像mysql没有split函数吧,好像要自己建函数
|
|
我是要在存储过程中写,好像mysql没有split函数吧,好像要自己建函数 |
|
20分 |
为什么要在数据库层面处理,先处理好再操作数据库也可以?
|
20分 |
顶楼上
先读出数据解析完后在插入数据库 |
20分 |
使用SUBSTRING_INDEX 及CONCAT试试吧
|
20分 |
刚好有
CREATE OR REPLACE FUNCTION GetSubStr( --定义函数(此函数完成字符串拆分功能): str in varchar2, --待分割的字符串 splitchar in varchar2 --分割标志 ) return split_tab IS restStr varchar2(2000) default GetSubStr.str;--剩余的字符串 thisStr varchar2(18);--取得的当前字符串 indexStr int;--临时存放分隔符在字符串中的位置 v SPLIT_TAB := SPLIT_TAB(); --返回结果 begin --dbms_output.put_line(restStr); while length(restStr) != 0 LOOP <<top>> indexStr := instr(restStr,splitchar); --从子串中取分隔符的第一个位置 if indexStr = 0 and length(restStr) != 0 then--在剩余的串中找不到分隔符 begin v.extend; v(v.count) := SPLIT_ARR(Reststr); return v; end; end if; if indexStr = 1 then---第一个字符便为分隔符,此时去掉分隔符 begin restStr := substr(restStr,2); goto top; end; end if; if length(restStr) = 0 or restStr is null then return v; end if; v.extend; thisStr := substr(restStr,1,indexStr - 1); --取得当前的字符串 restStr := substr(restStr,indexStr + 1);---取剩余的字符串 v(v.count) := SPLIT_ARR(thisStr); END LOOP; return v; end; |