1

我已经将一个制表符导入到 Excel 中。我有一个数据类型为 VARCHAR2(255) 的列从 Oracle 数据库中转储。

列中格式化的数据具有如下所示的数据:(冒号分隔值)

info 1: info 2: info 3

将文件导入 Excel 工作表后,我有几条记录的格式存在问题。基本上冒号之间有空格,导致制表符出现问题。

不良记录看起来像这样。记录导入,但该数据在电子表格中未对齐。

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

在 Oracle 语法中,sql 有没有一种方法可以让我以某种方式选择该列并删除嵌入的空格,这样它就不会破坏我的选项卡导入?

4

3 回答 3

1

这可能对您有用:

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

给出:

信息:1 信息 2:信息 3

假设您想在 'info' 和 ':' 之间留一个空格

于 2011-08-17T21:27:04.260 回答
1

这只是一个指针。如果我对您的理解正确,您想用空格(\b)替换所选列中的制表符(\t),以便制表符分隔的导入在excel中工作。

您可以使用替换功能来删除选项卡。(或可能适用的任何其他字符)

例子:

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

假设这符合您的数据要求,这将用空格替换制表符(或您提到的任何字符而不是' '

于 2011-08-17T21:17:27.227 回答
0

问题:Basically white spaces in between colons

如果“数据”(考虑到您正在使用的dreck,我使用这个术语很宽松)不包含空格,您可以使用替换函数在UDF 中用“”(空字符串)替换SPACE。或者,您可以用 COLON 替换所有 SPACE:COLON 和 COLON:SPACE 实例。

于 2011-08-17T21:17:06.640 回答