EXECUTE
プロシージャは、1つ以上のOLAP DMLコマンドを実行し、出力をプリンタ・バッファへ送信します。通常は、対話型のSQLセッションでアナリティック・ワークスペースのデータを操作する際に使用します。RUNプロシージャとは対照的に、EXECUTE
はエラー発生後もコマンドの処理を続行します。
SQL*Plusを使用している場合、次のコマンドを発行することにより、プリンタ・バッファを画面に表示できます。
SET SERVEROUT ON
他のプログラムを使用している場合、同様の設定についてはマニュアルを参照してください。
入力および出力は4Kに制限されます。さらに大きい値については、このパッケージのINTERP
ファンクションおよびINTERPCLOB
ファンクションを参照してください。
OLAP DML OUTFILE
コマンドを使用して出力をリダイレクトした場合、このプロシージャではDMLコマンドの出力は印刷されません。
注意: OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。 |
構文
EXECUTE ( olap_commands IN VARCHAR2 text OUT VARCHAR2);
パラメータ
表B-22 EXECUTEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
セミコロンで区切られた1つ以上のOLAP DMLコマンド。「OLAP DMLコマンドで引用符を使用する場合のガイドライン」を参照。 |
|
OLAPコマンドに対するOLAPエンジンからの出力。 |
例
次の例では、GLOBAL
アナリティック・ワークスペースをアタッチしてTIME
のオブジェクト定義を示しています。
EXECUTE dbms_aw.aw_attach('global'); EXECUTE dbms_aw.execute('DESCRIBE time'); DEFINE TIME DIMENSION TEXT
次の例では、エラー発生後にEXECUTE
がコマンドの処理を続行する方法を示しています。
EXECUTE dbms_aw.execute('SHOW DECIMALS'); 2 EXECUTE dbms_aw.execute('CALL nothing; DECIMALS=0'); BEGIN dbms_aw.execute('CALL nothing; DECIMALS=0'); END; * ERROR at line 1: ORA-34492: Analytic workspace object NOTHING does not exist. ORA-06512: at "SYS.DBMS_AW", line 93 ORA-06512: at "SYS.DBMS_AW", line 122 ORA-06512: at line 1 EXECUTE dbms_aw.execute('SHOW DECIMALS'); 0
次の例では、エラー発生後にEXECUTE
がコマンドの処理を続行する方法を示しています。
SQL> execute dbms_aw.execute('call nothing; colwidth=20'); BEGIN dbms_aw.execute('call nothing; colwidth=20'); END; * ERROR at line 1: ORA-34492: Analytic workspace object NOTHING does not exist. ORA-06512: at "SYS.DBMS_AW", line 90 ORA-06512: at "SYS.DBMS_AW", line 119 ORA-06512: at line 1 SQL> execute dbms_aw.execute('show colwidth'); 20 PL/SQL procedure successfully completed.