关于我做了什么让我发表这篇文章的一点点。我创建了 Sharepoint,上传了我从 PL/SQL Developer (.csv) 获取的文件并将它们链接到我的 Excel 文件。然后我想我可以用 SQLPLUS 自动化这个过程。
刷新 Excel 后,我发现 Excel 对使用此工具创建的文件格式不满意。它可以识别文件,但在分号之间有太多空格时无法识别值。第一列标题中还有一个我无法摆脱的奇怪符号。这也会导致问题。
当我去掉那些空格和这个符号时,我可以成功更新 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';
有什么可以解决我的问题吗?
非常感谢您的帮助!
使用命令
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 终端上,该命令似乎没有做任何事情。