返回信息流☆─────────────────────────────────────☆
Jesy (端梦) 于 (Fri Jul 24 15:53:03 2009) 提到:
*$*$*$*$*$*$
*$*$*$*$*$*$
A*$D*$B*$A*$河南省确山县普会寺乡凡店村张冲*$D*$
A*$D*$F*$A*$文盼盼 河南省新蔡县练村镇文营村委董湾*$B*$
这样的一列数据有6个问题组成,我怎样才能把6个问题分离出来并放到不同的列里呢?
每个问题之间都由$来分开的。。。
网上也找了很多,但都看不太懂啊~
谢谢啊~
ORACLE新手,轻拍~
☆─────────────────────────────────────☆
white127 (瓜牛) 于 (Fri Jul 24 17:35:04 2009) 提到:
可以用substring函数加正则式不?
☆─────────────────────────────────────☆
FlyBeast (ah_jun) 于 (Tue Jul 28 13:16:10 2009) 提到:
我觉得你把这个字段用spool导成文本文件,然后用sqlldr导入数据库,导入的时候用$做分隔符就行了。
spool我试了下,放在PL/SQL的命令窗口执行,sqlldr的没时间,呵呵,网上肯定有
CREATE TABLE AAA1 (STR VARCHAR2(100)) ;
INSERT INTO AAA1 VALUES ('*$*$*$*$*$*$ ');
INSERT INTO AAA1 VALUES ('A*$D*$B*$A*$河南省确山县普会寺乡凡店村张冲*$D*$ ');
INSERT INTO AAA1 VALUES ('A*$D*$F*$A*$文盼盼 河南省新蔡县练村镇文营村委董湾*$B*$ ');
COMMIT;
set trimspool on
set linesize 1200
set pagesize 0
set newpage 1
set heading off
set feedback off
set term off
spool D:\TEMP.TXT
SELECT * FROM AAA1 ;
spool off
☆─────────────────────────────────────☆
z0zi (en.|计忆邮心|离别歌|居家男女) 于 (Tue Jul 28 13:40:57 2009) 提到:
substr和instr这两个函数足够用了
☆─────────────────────────────────────☆
FlyBeast (ah_jun) 于 (Tue Jul 28 19:08:59 2009) 提到:
---第一部分
SELECT SUBSTR('1$2$3$4$5$6$',1,INSTR('1$2$3$4$5$6$','$')-1 ) FROM DUAL
result: 1
---第二部分
SELECT SUBSTR( SUBSTR('1$2$3$4$5$6$',INSTR('1$2$3$4$5$6$','$')+1 ),1,INSTR(SUBSTR('1$2$3$4$5$6$',INSTR('1$2$3$4$5$6$','$')+1 ),'$')-1 ) FROM DUAL
result: 2
---第三部分
result: 3
SELECT SUBSTR(SUBSTR( SUBSTR('1$2$3$4$5$6$',INSTR('1$2$3$4$5$6$','$')+1 ),INSTR(SUBSTR('1$2$3$4$5$6$',INSTR('1$2$3$4$5$6$','$')+1 ),'$')+1 ),1,INSTR(SUBSTR( SUBSTR('1$2$3$4$5$6$',INSTR('1$2$3$4$5$6$','$')+1 ),INSTR(SUBSTR('1$2$3$4$5$6$',INSTR('1$2$3$4$5$6$','$')+1 ),'$')+1 ),'$')-1 ) FROM DUAL
---第四部分
result: 4
SELECT SUBSTR(SUBSTR(SUBSTR(SUBSTR(reverse('1$2$3$4$5$6$') ,2),INSTR(SUBSTR(reverse('1$2$3$4$5$6$') ,2),'$')+1 ),INSTR(SUBSTR(SUBSTR(reverse('1$2$3$4$5$6$') ,2),INSTR(SUBSTR(reverse('1$2$3$4$5$6$') ,2),'$')+1 ),'$')+1 ),1,INSTR(SUBSTR(SUBSTR(SUBSTR(reverse('1$2$3$4$5$6$') ,2),INSTR(SUBSTR(reverse('1$2$3$4$5$6$') ,2),'$')+1 ),INSTR(SUBSTR(SUBSTR(reverse('1$2$3$4$5$6$') ,2),INSTR(SUBSTR(reverse('1$2$3$4$5$6$') ,2),'$')+1 ),'$')+1 ),'$')-1 ) FROM DUAL
---第五部分
result: 5
SELECT SUBSTR(SUBSTR(SUBSTR(reverse('1$2$3$4$5$6$') ,2),INSTR(SUBSTR(reverse('1$2$3$4$5$6$') ,2),'$')+1 ),1,INSTR(SUBSTR(SUBSTR(reverse('1$2$3$4$5$6$') ,2),INSTR(SUBSTR(reverse('1$2$3$4$5$6$') ,2),'$')+1 ),'$')-1 ) FROM DUAL
---第六部分
SELECT SUBSTR(reverse('1$2$3$4$5$6$') ,2,INSTR(reverse('1$2$3$4$5$6$'),'$')) FROM DUAL
result: 6
这是一条镜像帖。来源:北邮人论坛 / database / #3859同步于 2009/9/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
[合集] ORACLE中,怎么样截取含有固定分隔符的一串字符串呀?
coolfantasy
2009/9/21镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。