SQLPlus 管道 - 输出数据不可见

SQLPlus piping - output data not visible

当我 运行(通过 Mac 客户端远程):

echo "select table_name from user_tables" | sqlplus 'myuser/mypass@myhost.com:myport/mysid'

我没有显示任何数据:

SQL*Plus: Release 12.1.0.2.0 Production on Wed Nov 2 15:12:57 2016

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL>   2  Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

但我知道它有效,因为当我 运行 它处于交互模式时(即没有管道)我确实取回了数据:

SQL> select count(*) from user_tables;

  COUNT(*)
----------
       353

我没有 login.sql 所以我期待它能展示一些东西,即使它很丑。

我做错了什么?

如我所料,这是一个小问题。不要忘记你必须完全模拟你在解释器中输入的内容——包括分号:

echo "select table_name from user_tables;" | sqlplus 'myuser/mypass@myhost.com:myport/mysid'

如果您想添加格式设置选项,请按交互方式逐字执行:

echo "set pages 200\n select table_name from user_tables;" | sqlplus 'op_qa_zact/saas_admin@odb-scan.di01.qa.itsonsaas.com:1520/QADB01'