SQLPLUS - 分号之间的空格太多

问题描述 投票:0回答:1

关于我做了什么让我发表这篇文章的一点点。我创建了 Sharepoint,上传了我从 PL/SQL Developer (.csv) 获取的文件并将它们链接到我的 Excel 文件。然后我想我可以用 SQLPLUS 自动化这个过程。

刷新 Excel 后,我发现 Excel 对使用此工具创建的文件格式不满意。它可以识别文件,但在分号之间有太多空格时无法识别值。第一列标题中还有一个我无法摆脱的奇怪符号。这也会导致问题。

The file looks like this in Editor

当我去掉那些空格和这个符号时,我可以成功更新 Excel。

它希望文件看起来像这样:

DATUM;PROZESS;MENGE
27.04.2023;1150501002109;332
27.04.2023;1150502002006;1358
27.04.2023;1150502022040;121
27.04.2023;1150503001014;2060
27.04.2023;1150503004014;2784
27.04.2023;1150503007014;13655
27.04.2023;1150503022014;8895
27.04.2023;1150503034014;6

这就是我设置参数的方式:

SET echo off
SET heading   on
SET underline off
SET newpage 0
SET linesize 2000
SET colsep ';'
SET trimspool on
SET tab off
SET pagesize 50000 embedded on
SET feedback off
SET wrap off
SET trimout on
alter session set NLS_DATE_FORMAT = 'dd.mm.yyyy';

有什么可以解决我的问题吗?

非常感谢您的帮助!

excel oracle format sqlplus space
1个回答
0
投票

使用命令

set csv mark on
时,从 SQL*Plus 写入 CSV 文件要容易得多。如果你真的需要分号而不是标准的逗号,你可以运行
set mark csv on delimiter ';'
.

例如,创建一个名为“script.sql”的文件,如下所示:

-- If you really want semicolons, use: set mark csv on delimiter ';'
set mark csv on
set feedback off
set termout off
spool test.csv
select level a, level b from dual connect by level <= 100;
spool off

然后在 SQL*Plus 会话中运行

@script.sql

不幸的是,文件顶部仍然会有一个空行。这是由当前未修复的错误“32970199:空行添加为带设置标题选项的假脱机文件中的第一行”引起的。如果该额外行有问题,您需要关闭标题或使用脚本删除文件的第一行。

您的原始脚本包含命令

SET newpage 0
。根据手册,“零值会在每页(包括第一页)的开头放置一个换页符,并在大多数终端上清除屏幕。”但是在 Windows 上我得到了相同的女性符号,而在我的 Red Hat Linux 终端上,该命令似乎没有做任何事情。

© www.soinside.com 2019 - 2024. All rights reserved.