0

我有一个文件:

set linesize 1000
set trimspool on
set trimout on
set pagesize 0
set feedback off

spool result.csv

SELECT process_id || ';' || file_name || ';' || source || ';' || destination || ';' || type || ';' || transfer_name || ';' || message || ';' || message2  || ';' || destination_sub_group
FROM table
WHERE process_id = '12345';

而 SQLPLUS 正在调用它但是这是返回空格,特别是 message2 字段,关于如何删除它的任何想法?

这是输出:

12345;filename.txt;X;X;4;X;xx =  xxxx

Warning: Using insecure memory!

Decoding data....
Secret key is required to read it.
Key for user ID "X"
Error decrypting file '/apps/egs/gen/file_name.txt.pgp'.
;INBOUND

谢谢!

  • 我用 X 替换了一些值。

这是我想要的输出:

12345;filename.txt;X;X;4;X;xx = xxxx Warning: Using insecure memory! Decoding data.... Secret key is required to read it. Key for user ID "X" Error decrypting file /apps/egs/gen/file_name.txt.pgp'.;INBOUND
4

3 回答 3

1

我与这个问题斗争了好几天,当我想将查询结果放入 csv 时...... set mark csv ON最终解决了这种情况下的问题......我永远找到了那个命令

于 2021-03-31T17:52:33.950 回答
0

尝试使用TRIM删除尾随和前导空格以及REPLACE删除换行符和回车符:

    SELECT process_id || ';' || file_name || ';' || source || ';' || destination || ';' || type || ';' || transfer_name || ';' || message || ';' || 
    replace(replace(trim(message2),CHR(10),' '),CHR(13),' ')  || ';' || destination_sub_group
    FROM table WHERE process_id = '12345';
于 2013-07-06T20:53:40.310 回答
0

添加以下内容:

COL the_stuff 表格 a1000

然后将“the_stuff”列别名添加到您的查询中:

SELECT process_id ....destination_sub_group the_stuff from ..

这将明确允许您控制此输出的显示方式。

接下来,要处理输出中的嵌入式换行符,请围绕 TRANSLATE ( ..., CHR(10), '+' )

例如

这显示带有换行符的数据:

SQL> select 'line 1' || chr(10) || 'line2' || chr(10) || 'line 3' txt from dual;

TXT
-------------------
line 1
line2
line 3

翻译用“+”替换换行符:

SQL> select translate ( 'line 1' || chr(10) || 'line2' || chr(10) || 'line 3',
                        chr(10), '+' ) txt  
    from dual;

TXT
-------------------
line 1+line2+line 3

SQL>
于 2013-11-26T15:56:04.650 回答