我已经导入了一个分隔到excel中的标签。我有一个从Oracle数据库转储的数据类型为VARCHAR2(255)的列。
列中格式化的数据具有如下所示的数据:(冒号分隔值)
info 1: info 2: info 3
将文件导入excel工作表后,我有一些记录格式存在问题的记录。冒号之间基本上是空格,导致标签出现问题。
糟糕的记录看起来像这样。记录导入,但该数据在电子表格中未对齐。
info<...whitespace here...>1: info 2: info 3
在Oracle语法中是否有一种方法,我可以以某种方式选择该列并删除嵌入的空格,以便它不会破坏我的标签导入?
答案 0 :(得分:1)
这只是一个指针。 如果我理解正确,你想用选中的列替换选项卡(\ t)和空格(\ b),以便制表符分隔导入在excel中工作。
您可以使用替换功能删除标签。 (或任何其他可能适用的字符)
示例:
SELECT REPLACE(YOUR_COLUMN_NAME,CHR(9),' ') FROM ...
假设这符合您的数据要求,这会将标签替换为空格(或您提及的任何字符而不是' '
)
答案 1 :(得分:1)
这可能对您有用:
SELECT regexp_replace('info :1 info 2: info 3','[[:space:]]{2,}', ' ') FROM dual;
给出:
info:1 info 2:info 3
假设你想在'info'和':'
之间留一个空格答案 2 :(得分:0)
问题:Basically white spaces in between colons
如果“数据”(我使用松散的术语,给定您正在使用的残骸)不包含空格,则可以使用替换函数将UDACE替换为UDF中的“”(空字符串)。或者你可以用COLON替换所有SPACE实例:COLON和COLON:SPACE。