【问题标题】:how to deal with trailing white spaces using oracle sql select statement如何使用oracle sql select语句处理尾随空格
【发布时间】:2011-10-29 06:57:04
【问题描述】:

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

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

info 1: info 2: info 3

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

不良记录如下所示。记录导入,但该数据在电子表格中未对齐。

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

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

【问题讨论】:

  • I've imported a .csv file that is tab delimited. 听起来令人困惑。那是逗号分隔(csv)文件还是制表符分隔文件?此外,问题是在将数据导出到 excel 时 - 对吗?

标签: sql oracle csv removing-whitespace


【解决方案1】:

这可能对你有用:

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

给予:

信息:1 信息 2:信息 3

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

【讨论】:

    【解决方案2】:

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

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

    例子:

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

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

    【讨论】:

      【解决方案3】:

      问题:Basically white spaces in between colons

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-20
        • 2018-06-05
        • 2019-04-05
        • 1970-01-01
        • 1970-01-01
        • 2017-03-29
        • 1970-01-01
        • 2015-11-15
        相关资源
        最近更新 更多