web-dev-qa-db-ja.com

コマンドプロンプトで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
1
GauravH

12.41.61 SET TERM [OUT] {ON | OFF}

@、@@、またはSTARTで実行されるスクリプト内のコマンドによって生成された出力の表示を制御します。OFFは、出力をスプールできるように表示を抑制します。画面に出力を表示せずにファイルに。 ONは画面に出力を表示します。 TERMOUT OFFは、対話形式で入力したコマンドからの出力、またはオペレーティングシステムからSQL * Plusにリダイレクトしたコマンドには影響しません。

上記のコマンドをスクリプトに入れ、そのスクリプトを呼び出します。

script.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
5
Balazs Papp

スプールとクエリスクリプトをSQLエンジンに配置するには、3つの方法があります。

1、SqlplusWindow

SQL> SPOOL * select query * SPOOL OFF

2、SqlplusWindow

SQL> @spoolquery.sql

3、シェルターミナルまたはジョブ

sqlplus -s "/as sysdba" << EOF_INCLUDE_SCRIPT>/dev/null 2>&1

YourSpool&QueryScriptHere

EOF_INCLUDE_SCRIPT

ここMethod3では-sはクエリスクリプトを非表示にし、>/dev/null 2>&1はクエリ結果の出力を非表示にします。

0
Jason Smartree