浏览 249 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-04-22
//列子
p_str:aaaa^1111^sfsdf^ p_flag :^ create or replace function string_split(p_str in out varchar2, p_flag in varchar2 ) return varchar2 is v_str varchar(3000); v_locate integer; /* Released by : Jackie Last Release : 2007-10-22 Version : 2.01 */ begin v_str := ltrim(rtrim(p_str, p_flag), p_flag); v_locate := instr(v_str, p_flag, 1, 1); if v_locate = 0 then p_str := null; return(v_str); end if; p_str := substr(v_str, v_locate + 1, length(v_str)); return(substr(v_str, 1, v_locate - 1)); end string_split; 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-04-22
明明A、B两个字段是1:N关系,
用两张主从关系的表来描述,非常轻松 却偏偏要把N个B用间隔符连接起来,硬是要把∑B和A塞到同一张表里 于是,这张表的维护和查询都变得极为痛苦 |
|
| 返回顶楼 | |
|
最后更新时间:2008-04-22
用函数跑得会比较慢。。。不如再来个表像二楼说的1:N
想了想,写成下面这样貌视应该也行吧 substr(rtrim(p_str,p_flag),1,instr(p_str||p_flag,p_flag,1,1)-1), 例子: select substr(rtrim('123^12431','^'),1,instr('123^'||'^','^',1,1)-1) from dual |
|
| 返回顶楼 | |
|
最后更新时间:2008-05-08
呵呵谢谢各位,我是想让他成为一个通用的东西,以后在编写存储过程时,可以直接用,就当成如同SQL自己提供的函数,例如就象,tostring()
|
|
| 返回顶楼 | |




