2014-06-17 57 views
0

我有3個字段,"FieldA", "FieldB", and "FieldC"包含字段本身內換行,當輸出到包含類似值的CSV:如何在oracle中的字段和記錄中沒有任何換行符的情況下進行查詢?

"This is some 
sample text that is listed here" 

我可以使用哪些查詢或手段,對這些領域的查詢來獲取值同時刪除任何這些換行符?

set echo off 
set verify off 
set termout on 
set heading off 
set feedback off 
set newpage none 
set recsep off 

spool "data.txt" 
SELECT 
LTRIM(RTRIM(REPLACE(REPLACE(c, CHR(10), ''),CHR(13),''))) 
FROM 
mytable; 
spool off; 

的電流輸出爲:

valueC1 




valueC2 





valueC3 

所有的空白顯然都是 「空間」。我如何擺脫這些?我猜測他們是尾隨空格?嘗試:

RTRIM(replace(C,Chr(10),'')) 

看起來有相同的輸出。我不能看到一些奇怪的鬼角色嗎?當我選擇一個沒有任何奇怪空格的列時,在生成的文件中沒有多餘的空格。

+0

'替換(STR,CHR(10),空)'你可以使用ASCII值換行符是10. –

+0

似乎有很多拖尾空格,導致我的數據之間出現很大差距... – Setsuna

+0

檢查CHR(9) - Tab以及 – TMNT2014

回答

1

嘗試SELECT REPLACE(FIELDA,CHR(10),'「)FROM YourTable

+0

現在的問題是我刪除了每個記錄/字段之間的所有空格,每個記錄之間有很多額外的空格。不知道他們來自哪裏。 – Setsuna

+0

你試過LTRIM嗎?(RTRIM(REPLACE(FieldA,CHR(10),''))) – TMNT2014

+0

剛試過了,更新了原文。看起來像當我只選擇沒有這些「額外空格/分隔符」的字段時,那麼輸出沒有多餘的空格,但即使只是選擇了具有這些空格/換行符/幻影字符的單個列「C」,每條記錄之間有4個換行符... – Setsuna

0

嘗試 REPLACE(FieldA, CHR(10), ' ')

相關問題