Oracle
當我在命令提示符下使用 sqlplus 時,設置 TERMOUT OFF 不起作用?
我在我的假離線 sql 腳本中使用下面列出的 sql 語句,並且我正在從 sqlplus 執行這個腳本。但是在終端查詢輸出仍然存在,我在命令提示符下使用 sqlplus。但是當我嘗試直接啟動 sqlplus.exe 並使用此腳本時,我沒有在終端中獲得查詢輸出。
當我從命令提示符啟動 sqlplus 時,有人可以幫助我如何停止終端輸出嗎?
SET ECHO OFF SET TERMOUT OFF SET FEEDBACK OFF SET PAGESIZE 0 SET LINESIZE 83 SET TRIMSPOOL ON SET WRAP ON SET RECSEP OFF SPOOL '&1' SELECT DATA_OUT_DATA FROM STAGE.DATA_TABLE ORDER BY DATA_UNIQ_ID,DATA_INV_ID, DATA_SEQ_NO; SPOOL OFF SET PAGESIZE 24 SET LINESIZE 80 SET FEEDBACK ON SET TERMOUT ON
$$ OUT $${開 | 離開}
控制由**@、@@ 或 START 執行的腳本中的命令生成的輸出的顯示。**OFF 禁止顯示,以便您可以將輸出假離線到文件而不在螢幕上顯示輸出。ON 在螢幕上顯示輸出。TERMOUT OFF 不會影響您以互動方式輸入或從作業系統重定向到 SQL*Plus 的命令的輸出。
將上述命令放入腳本中,然後呼叫該腳本。
腳本.sql:
SET ECHO OFF SET TERMOUT OFF SET FEEDBACK OFF SET PAGESIZE 0 SET LINESIZE 83 SET TRIMSPOOL ON SET WRAP ON SET RECSEP OFF SPOOL '&1' SELECT DATA_OUT_DATA FROM STAGE.DATA_TABLE ORDER BY DATA_UNIQ_ID,DATA_INV_ID, DATA_SEQ_NO; SPOOL OFF SET PAGESIZE 24 SET LINESIZE 80 SET FEEDBACK ON SET TERMOUT ON
然後:
SQL> @script.sql
將 spool 和查詢腳本放入 sql 引擎有以下三種方法:
1、Sqlplus視窗
SQL> SPOOL * select query * SPOOL OFF
2、Sqlplus視窗
SQL> @spoolquery.sql
3、Shell終端或JOB
sqlplus -s "/as sysdba" << EOF_INCLUDE_SCRIPT>/dev/null 2>&1 YourSpool&QueryScriptHere EOF_INCLUDE_SCRIPT
在 Method3 中,
-s
隱藏查詢腳本並>/dev/null 2>&1
隱藏查詢結果輸出。