【问题标题】:How to spool three columns from a table and check the summation of the third column in UNIX shell script如何从表中假脱机三列并检查 UNIX shell 脚本中第三列的总和
【发布时间】:2014-12-24 13:37:18
【问题描述】:

我创建了一个查询,它产生三列。我能够获取假脱机文件中的详细信息,并基于此检查第三列中所有值(数字)的总和是否为 0 的条件。如果不是 0,那么完整的结果应该在邮件中。

我面临的问题是: 1)当我为三列编写简单的 SELECT 查询时,结果不是三列单行单记录。但它显示为每一列值的一行。

即在 TOAD 中,结果如下:

   |Column_name_1 |  Column_name_2  |  Column_name_3 |
   +--------------+-----------------+----------------+
   | text_1       |    text_2       |   num_1        |
   | text_3       |    text_4       |   num_2        |

但是在假脱机文件中,我得到的结果是--

  |text_1  |
  |text_2  |
  |num_1   |

  | text_3   |
  | text_4   |
  | num_2    |

2) 另一个问题是我在假脱机文件中没有得到任何标题。

任何人都可以看看这个,让我知道如何继续。

【问题讨论】:

  • 请显示您用于将结果假脱机到文本文件的代码。另外,请确认这不是在您用于查看文件的任何客户端中换行的情况。
  • 编辑您的问题以包含您的代码。请注意,在要显示为代码的文本前面需要(至少)4 个空格 ;-) 祝你好运。
  • 我使用的代码是: SET RECSEP OFF SET ECHO OFF SET FEEDBACK OFF SET HEADING ON SET LINESIZE 100 SET PAGESIZE 0 SET SPACE 0 SET TERMOUT OFF SET TRIMOUT OFF SET TRIMSPOOL ON SET VERIFY OFF SPOOL $DATA /abc.txt 当 sqlerror 退出 1 回滚;从对偶中选择 col_1、col_2、col_3; SPOOL off 结果显示为:EXCP098 EXCEPTION: Processing not allowed 2 EXCP014 EXCEPTION: UNKNOWN STATUS 11 我想要结果为:EXCP098 |例外:不允许处理 | 2 EXCP014 |例外:未知状态 | 11

标签: sql oracle shell unix


【解决方案1】:

尝试添加 SET RECSEP OFF 来解决问题 1,这将解决您的记录分离问题。 添加 SET HEADING ON 以打印列标题。

请参阅此link 进行学习。

【讨论】:

  • 我使用的代码是: SET RECSEP OFF SET ECHO OFF SET FEEDBACK OFF SET HEADING ON SET LINESIZE 100 SET PAGESIZE 0 SET SPACE 0 SET TERMOUT OFF SET TRIMOUT OFF SET TRIMSPOOL ON SET VERIFY OFF SPOOL $DATA /abc.txt 当 sqlerror 退出 1 回滚;从对偶中选择 col_1、col_2、col_3; SPOOL off 结果显示为:EXCP098 EXCEPTION: Processing not allowed 2 EXCP014 EXCEPTION: UNKNOWN STATUS 11 我想要结果为:EXCP098 |例外:不允许处理 | 2 EXCP014 |例外:未知状态 | 11
猜你喜欢
  • 1970-01-01
  • 2020-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-06
  • 1970-01-01
  • 2018-11-12
相关资源
最近更新 更多