作者ppanerai (AP1与TOG你们在哪)
看板Database
标题[SQL ] ORACLE 连接字串
时间Fri Jul 21 10:02:08 2006
假设table01 中有 以下资料
emp_no emp_name
------- ------------
0001 TOM
0002 JOHN
0003 MARY
而我们要得到以下的OUTPUT (或是各种其他的output)
0001,TOM
0002,JOHN
0003,MARY
应该怎麽做呢?
答案是 善用 Concatenation Operator ||
而上述的问题
只要这麽下SQL 就可得解
SELECT EMP_NO||','||EMP_NAME
FROM TABLE01
连接符号间的字串以单引号括住
而字串中以 两个' 代表 ' , 也就是 ' '' ' 会OUTPUT成 '
所以可以变化出各种我们要的结果
1.
SELECT ''''||EMP_NO||''','||EMP_NAME
FROM TABLE01
得到
'0001',JOHN
'0002',TOM
'0003',MARY
2. 串出INSERT SCRIPT
SELECT 'INSERT INTO TABLE02 VALUES ('''||
EMP_NO||''','''||EMP_NAME||''');'
FROM TABLE01
可得
INSERT INTO TABLE02 VALUES ('0001','JOHN');
INSERT INTO TABLE02 VALUES ('0002','TOM');
INSERT INTO TABLE02 VALUES ('0003','MARY');
所以
在 sqlplus 之下, 我们便可以很轻松地得到想要的结果
如果搭配 spool 与 spool off 也可以很简单做出 csv档
配合 shell script,cron等等,
各种变化相信大家的创造力一定可以想得出来
当然噜 有人会说
"SQL*NAVIGATOR 之类的3rd party tools按两下就可以做出来了啊"
囧~
啊 对不起 小弟是老人 还是习惯自己手工打造 呵呵
有时候还是只有 sqlplus 这个工具可用
大家参考一下搂
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 202.145.230.2
1F:→ luvin: 07/21 10:41
2F:推 TonyQ:好文我推 07/27 16:31