如何在SQLPLUS中停止Unix中的终端输出并将输出后台处理到文件中?
我在[关闭]模式下尝试了serveroutput
,echo
,termout
,feedback
,但是没有运气。
它也在显示登录详细信息。
sqlplus -s $LOGON << EOF
WHENEVER OSERROR EXIT 9;
WHENEVER SQLERROR EXIT 9;
set serveroutput off;
set echo off;
set termout off;
set feedback off;
set heading off;
set linesize 10000;
set colsep "|";
set trims on;
set trimspool on;
set pagesize 0;
spool Summary.txt
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YY';
Select * from Customer;
spool off;
EXIT;
EOF
PS:我正在Unix脚本中调用此语句
答案 0 :(得分:0)
set termout off;
-这是正确的选项,但不适用于交互模式。
选项:
答案 1 :(得分:0)
整个Oracle 12 Release系列的许多新功能都可以提供帮助。例如,在12.2中,有一个新的“历史记录”命令,您可以在会话中显示和运行过去的命令,而不必重新输入。要启用它,您可以“将历史记录设置为开”(默认为100行历史记录),也可以指定要保留的行数。要查看历史记录,只需在命令提示符下键入“ history”,然后执行过去的命令,只需为要执行的SQL语句输入“ run LineNum”即可。
还有“ SET MARK CSV”命令,因为它是格式化Excel电子表格结果集或将数据集加载到其他数据库类型的快速方法。下面的示例显示了如何使用“ SET MARK CSV”,“ SET ROWLIMT”和“ SET FEEDBACK ON SQL_ID”命令。
示例2 enter image description here
下面列出了新的SQL Plus功能及其发布时间。此外,还有一个新参数“ -f”(表示快速),您可以在命令行上将其传递给SQL Plus以加快会话速度。 版本12.2 -历史记录设置历史记录[ORY] {ON |关闭| n} -- -可以创建CSV格式 将标记CSV设置为[DELIMI {TER}字符] [QUOTE {ON | OFF}] -SET STATEMENTC [ACHE] {0 | n} -仅设置反馈 不只是[ON |关] -Sqlplus –f @ test.sql 设置ARRAYSIZE 100,LOBPREFETCH 16384,PAGESIZE 50000, ROWPREFETCH 2,STATEMENTCACHE 20 使其运行更快版本18c -设置线型窗口 -在SQL_ID上设置反馈 -SET ROWLIMIT n版本19c -EZConnect改进 接受名称/值对列表
最后,我在19c中为sqlplus找到的唯一改进是eZconnect改进,您可以在连接时在命令行上包含标记/值对以修改其他选项。这提供了一种无需编辑SQLNET.ora文件即可进行连接的快速方法。下面列出了使用此功能的示例:
sqlplus soe / soe @ ///主机名:1521 / sales.company.com?connect_time = 60&传输connect_timeout = 30&retry_count = 4