【问题标题】:Removing spaces in column data in Oracle 12.1 - SQLPlus在 Oracle 12.1 中删除列数据中的空格 - SQLPlus
【发布时间】:2017-10-10 06:51:15
【问题描述】:

我们正在使用基于 Oracle 的 ERP,我们的一个专栏有一个特定的规则,即我们在每个字符串的开头和结尾都有几个空格。它看起来像这样:

       A          |          B
--------------------------------------
   Value1         |123
   Value2         |345

A 列中每个值前面有 3 个空格,后面有 9 个空格。我正在尝试使用 SQLPlus 脚本提取信息:

SET colsep ,
SET pagesize 0
SET feedback OFF
SET heading OFF
SET trimspool ON
SET trimout ON
spool d:\spool.csv
select trim(rtrim(A)), B, from table;
spool out

结果如下:

Value1         ,123
Value2         ,345

我需要的是:

Value1,123
Value2,345

知道如何实现吗? 尝试了 trim、rtrim、replace、regexp_replace 但它似乎不起作用。

【问题讨论】:

  • 您的数据类型可能是charvarchar 会给你快速的结果。
  • 这个有用吗?:select replace(a||','||b,' ','') from table;
  • 这给了你什么:从表中选择转储(A);

标签: oracle sqlplus oracle12c


【解决方案1】:

使用

select replace(col1||','||col2,' ','') from your_table;

例子

SQL> create table test12(col1 char(10),col2 integer);

Table created.

SQL> insert into test12(col1,col2) values ('value1',1);

1 row created.

SQL> insert into test12(col1,col2) values ('value2',2);

1 row created.

SQL> commit;

Commit complete.

SQL> select replace(col1||','||col2,' ','') from test12;
value1,1
value2,2
SQL> spool off;
SQL>

test.csv

SQL> select replace(col1||','||col2,' ','') from test12;
value1,1
value2,2
SQL> spool off;

【讨论】:

    猜你喜欢
    • 2019-03-03
    • 2011-03-05
    • 2013-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    相关资源
    最近更新 更多