2011-08-17 41 views
1

我已經導入了一個分隔到excel的製表符。我有一個數據類型爲VARCHAR2(255)的列從Oracle數據庫中轉儲出來。如何處理使用oracle sql select語句的尾隨空格

列格式的數據有看起來像這樣的數據:(冒號分隔值)

info 1: info 2: info 3 

文件導入到Excel工作表後,我有幾個記錄,其中有在格式化的問題。基本上在冒號之間的空格,導致選項卡出現問題。

不良記錄看起來像這樣。記錄導入,但該數據在電子表格中未對齊。

info<...whitespace here...>1: info 2: info 3 

是否有甲骨文語法的方式,SQL我可以以某種方式選擇該列並刪除嵌入空格,這樣就不會破壞我的標籤進口?

+0

'我已經導入.csv文件是製表符分隔。 「聽起來很混亂。這是逗號分隔(csv)文件或製表符分隔的文件嗎?另外,問題出在數據導入excel時 - 是嗎? –

回答

0

問題:Basically white spaces in between colons

如果「數據」(我用給你正在使用的dreck鬆散的術語)不包含空格,您可以使用替代函數「來代替SPACE」(空字符串)在UDF中。或者你可以用COLON替換空間的所有實例:COLON和COLON:SPACE。

1

這只是一個指針。 如果我正確地理解了你,你想用空格(\ b)替換選中列中的製表符(\ t),以便製表符分隔的導入在excel中工作。

您可以使用替換功能刪除選項卡。 (或任何其他字符,因爲它可能適用)

例子:

SELECT REPLACE(YOUR_COLUMN_NAME,CHR(9),' ') FROM ... 

假設這符合你的需求,這將空格替換選項卡(或你提到的,而不是' '任何字符)

1

這可能會爲你工作:

SELECT regexp_replace('info :1 info 2: info 3','[[:space:]]{2,}', ' ') FROM dual; 

給出:

信息:1個信息2:信息3

假設你要離開之間的「信息」和一個空格「:」