ヘッダーをスキップ
Oracle® OLAP DMLリファレンス
11gリリース2 (11.2)
B61346-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

RUNプロシージャ

RUNプロシージャは、1つ以上のOLAP DMLコマンドを実行し、出力をプリンタ・バッファへ送信します。通常は、対話型のSQLセッションでアナリティック・ワークスペースのデータを操作する際に使用します。EXECUTEプロシージャとは対照的に、RUNはエラーが発生した場合にはコマンドの処理を停止します。

SQL*Plusを使用している場合、次のコマンドを発行することにより、プリンタ・バッファを画面に表示できます。

SET SERVEROUT ON

他のプログラムを使用している場合、同様の設定についてはマニュアルを参照してください。

OLAP DML OUTFILEコマンドを使用して出力をリダイレクトした場合、このプロシージャではDMLコマンドの出力は印刷されません。


注意:

OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

RUN ( 
          olap_commands     IN      STRING, 
          silent            IN      BOOLEAN DEFAULT FALSE);
RUN ( 
          olap_commands     IN      CLOB,   
          silent            IN      BOOLEAN DEFAULT FALSE);
RUN ( 
          olap_commands     IN      STRING, 
          output            OUT     STRING);
RUN ( 
          olap_commands     IN      STRING, 
          output            IN OUT  CLOB);
RUN ( 
          olap_commands     IN      CLOB,   
          output            OUT     STRING);
RUN ( 
          olap_commands     IN      CLOB,
          output            IN OUT  CLOB);

パラメータ

表B-28 EXECUTEプロシージャのパラメータ

パラメータ 説明

olap-commands

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

silent

OLAP DMLコマンドからの出力を抑止する必要があるかどうかを通知するブール値。(OLAPエンジンからのエラー・メッセージは、この設定に関係なく、抑止されない。)

output

OLAPコマンドに対するOLAPエンジンからの出力。


次のSQL*Plusセッションのサンプルでは、XADEMOというアナリティック・ワークスペースをアタッチし、XADEMOCOST_PPという計算式を作成して、新しい計算式の定義を表示しています。

EXECUTE dbms_aw.run('DESCRIBE time');

DEFINE TIME DIMENSION TEXT                                                                                                                            

次の例では、エラー発生後にRUNがコマンドの実行を停止する方法を示しています。

EXECUTE dbms_aw.run('SHOW DECIMALS');
0
 
EXECUTE dbms_aw.run('CALL nothing; DECIMALS=4');
BEGIN dbms_aw.run('CALL nothing; DECIMALS=4'); END;
 
*
ERROR at line 1:
ORA-34492: Analytic workspace object NOTHING does not exist. 
ORA-06512: at "SYS.DBMS_AW", line 58 
ORA-06512: at "SYS.DBMS_AW", line 134 
ORA-06512: at line 1 
 
EXECUTE dbms_aw.run('SHOW DECIMALS');
0