在 Oracle 12.1 - SQLPlus 中删除列数据中的空格

Removing spaces in column data in Oracle 12.1 - SQLPlus

我们使用的是基于 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、替换、regexp_replace,但它似乎不起作用。

使用

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;