ヘッダーをスキップ
Oracle OLAP DMLリファレンス
11g リリース1(11.1)
E05732-02
  目次へ
目次
索引へ
索引

戻る
戻る
 
次へ
次へ
 

EXECUTEプロシージャ

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プロシージャのパラメータ

パラメータ 説明

olap-commands

セミコロンで区切られた1つ以上のOLAP DMLコマンド。「OLAP DMLコマンドで引用符を使用する場合のガイドライン」を参照。

text

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.