1

我正在尝试生成一个数据文件作为表的下载,该表可能是固定格式的。我已经准备好 SQL。

例子:

SELECT RPAD(ORGANIZATION_ID,10)||RPAD(ORGANIZATION_NAME,100)||RPAD(EMPLOYEE_COUNT,100)
FROM MY_ORGANIZATION_STATE;

我在 SQL Developer 中运行它,然后导出到 Excel。对于 50 条记录的样本。我能够正确获取,并且格式看起来不错。

但我需要自动化它,因此我们使用 SQL*Plus 的 spool 命令。下面是一个片段。

set pagesize 100;
set linesize 10000;
set heading off;
spool orgn_output.dat;
@my_script # this has my SQL inside
spool off;

这运行没有任何错误。

但是当我试图打开文件时,我可以看到,文件内有多余的空格,并且布局与我预期的不一样!

当我手动运行 SQL 并使用 PUTTY 假脱机时,它看起来是文件。为什么我的脚本会生成错误的脚本。我不知道为什么会这样。

任何帮助是极大的赞赏!

编辑:输出:

100         Deva@Company@Sales          469
101         Deva@School                 234
102         Deva@Hospitals              245
103         Deva@Company@Finance        469

谢谢

4

2 回答 2

2

实际上,我可以轻松地重现您的问题。当列文本较小时会发生这种情况。当我发出确切的文本大小时,布局是大小,并且我看到假脱机文本中的文本有制表符而不是空格。模式也不一致。我刚刚研究了可用的命令,我发现了。SET TAB OFF; 在 sqlplus 中解决了这个问题。

我希望,sqlplus它本身正在将内部的多个空格更改为 TAB。设置 TAB 解决了它。!

请尝试该选项。让我知道。祝你好运!

附言。编辑您的问题,揭示了错误,可能是这样,在格式化时有效地转换 TAB :)

于 2013-12-23T17:51:29.697 回答
0

其实我有这种sqlplus的问题。在我修复它之后,我想建议你尝试使用这种格式的 sqlplus。

  1. 设置TRIMSPOOL ON;
  2. 设置标签关闭;

由于错误,因为它是关于阀芯问题。所以我们只是采用 trimspool 的格式。

于 2017-04-25T03:53:59.843 回答