我们正在使用基于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
任何想法如何实现? 尝试修剪,rtrim,替换,regexp_replace但它似乎不起作用。
答案 0 :(得分:2)
使用
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;