【发布时间】:2020-09-22 07:48:06
【问题描述】:
这是我的 shell 脚本。
echo "Start";echo @/opt/apps/Tests/SQLDir/Test1.sql | sqlplus Db1/Db1@//maydomain:port/abc;echo "Finish";
echo "Start";echo @/opt/apps/Tests/SQLDir/Test2.sql | sqlplus Db1/Db1@//maydomain:port/abc;echo "Finish";
我有 30 个这样的 .sql 文件,添加到一个 .sh 文件中,生成 30 个 .csv 文件
Test1.sql 有
SPOOL /opt/apps/Tests/OF/output1.csv REPLACE;
select name from username where id = 10 and Sname is not NULL and ROWNUM < = 50000;
Test2.sql 有
SPOOL /opt/apps/Tests/OF/output2.csv REPLACE;
select strname,ctyname from addr where city = 'NYC' and ROWNUM < = 50000;
我在 output1.csv 中的预期 OP 是
name
Abc
xyz
pqr
我在 output2.csv 中的预期 OP 是
strname | ctyname
10-AP NYC
11-KP MCH
90-ZP SDK
现在我在 csv 中变得奇怪 o/p
name
-------------------------------
Abc
xyz
pqr
name
-------------------------------
TYU
KLH
50000 rows selected.
SQL>
那么有什么方法可以用 shell 脚本/sql 代码删除那些额外的行 [--------- 和 50000 行。]? 在执行 shell 脚本时,所有 sql 结果行都打印在屏幕上。 如何避免这种情况? 提前致谢。
【问题讨论】:
-
你的 4 位 Sql*Plus 版本是多少?
-
@stackoverflow.com/users/10726850/pifor SQL*Plus:版本 12.2.0.1.0