2008-09-19 105 views

回答

3

我有一個特定的腳本tolen不止一次來自extracting data to a flat file上的AskTom線程。如果我需要SQL * Plus以外的快速和骯髒的平面文件。儘管如此,我傾向於選擇Tom在該線程上發佈的DUMP_CSV函數來處理任何類型的進程。

8

正如Justin在他的鏈接中指出的那樣,使用set colsep函數SQLPlus命令可以爲每列保存輸入分隔符。

但是對於製表符分隔的,set colsep Chr(9)不起作用。

對於UNIX或LINUX,請使用set colsep ' ',單引號之間的空格是鍵入的選項卡。

對於Windows,使用這些設置:

col TAB# new_value TAB NOPRINT 
select chr(9) TAB# from dual; 
set colsep "&TAB" 

select * from table; 
1

我得到了一個愚蠢的方案。它工作得很好。

解決方案

SELECT column1 || CHR(9) || column2 || CHR(9) || column3 ... ... 
FROM table 

原則背後

事實上,它只是一個字符串連接

CHR(9)- > '\ T'

列1 || CHR(9)|| column2 - >concat(column1,'\ t',column2)

+0

警告:一旦在其中一個值中遇到換行符,執行此操作將截斷行的輸出。 – nodmonkey 2016-09-27 07:08:12

相關問題