GETファンクションは、現行の入力ストリームから入力を要求します。入力は、単一アイテムのデータ、ディメンション値、アナリティック・ワークスペース・オブジェクト、または単に入力ストリームの次の項目の場合があります。GETファンクションの最も単純な形式でも、特定のデータ型の値が必要です。
GET(datatype)
GETには、入力を確認する引数も複数あります。
GETはファンクションであるため、OLAP DMLコマンド内で使用する必要があります。また、代入文で変数に入力を格納して後で使用でき、またはLIMITコマンドで使用して、ディメンションのステータスを設定することもできます。プログラムでGETを使用することにより、プログラムの完了に必要な情報を要求できます。
構文
GET({RAW TEXT|[NEW|VALID|POSLIST] input} -
[VERIFY condition-exp [IFNOT result-exp]])
ここで、inputは次のいずれかです。
パラメータ
ディメンションの名前を指定するテキスト式。dim-nameを指定した場合、GETはこのディメンションの値を入力として要求し、その入力がディメンションの有効な値であることを確認します。
GETが入力ストリームの次の項目を入力されているとおりに返すことを指定します。「RAW TEXTを指定したGET」を参照してください。
dim-name引数のあるNEWキーワードによって、GETはディメンションの新しい値を要求します。NEWを指定してディメンション値を要求すると、GETは入力が既存のディメンション値ではないことを確認します。
dim-name引数のあるVALIDキーワードによって、GETはディメンションの新しい値または既存の値を要求します。VALIDを指定してディメンション値を要求すると、GETは入力が既存のディメンション値または有効な新規ディメンション値のいずれかであることを確認します。
dim-name引数のあるPOSLISTキーワードによって、GETはディメンションのその位置によって識別されるディメンション値を要求します。POSLISTを指定してディメンション値を要求すると、GETは入力がディメンションの既存の位置番号であることを確認します。「POSLISTを指定したGET」を参照してください。
GETが現行アナリティック・ワークスペースのオブジェクトの名前を要求することを指定します。NAMEを指定した場合、GETは入力が現行アナリティック・ワークスペースに存在するオブジェクトであることを確認します。オブジェクト名は一重引用符で囲まず、DEFINEに示す有効なオブジェクト名のルールに従う必要があります。GETは、自動的にオブジェクト名を大文字に変換します。
NEW NAMEキーワードを使用すると、新しいアナリティック・ワークスペース・オブジェクトの名前を要求できます。NEWを指定してアナリティック・ワークスペースのオブジェクト名を要求すると、GETは入力を確認して、アタッチされたアナリティック・ワークスペース(EXPRESS.DB
を含む)の既存のオブジェクト名ではないことを確認します。
VALID NAMEキーワードを使用すると、アナリティック・ワークスペース・オブジェクトの名前を要求できます。VALIDを指定してアナリティック・ワークスペースのオブジェクト名を要求すると、現行のアナリティック・ワークスペースがない場合や、該当の名前が存在するかどうかに関係なく、GETは、入力が有効なオブジェクト名のルールに従っていることを確認します。
POSLIST NAMEキーワードを使用すると、NAMEディメンションでの位置によって識別されるアナリティック・ワークスペースのオブジェクト名を要求できます。POSLISTを指定してアナリティック・ワークスペースのオブジェクト名を要求すると、GETは入力がNAMEディメンションの既存の位置番号であることを確認します。
GETによって要求されるデータの型を指定しますが、これは、Oracle OLAPデータ型(INTEGER、SHORTINTEGER、DECIMAL、SHORTDECIMAL、BOOLEAN、ID、TEXTおよびDATE)のいずれも可能です。データ型を要求する場合、GETはNA
の値を受け入れます。
VERIFYでは、GETに対する入力が適合する必要があるブール条件を指定できます。condition-expにVALUEキーワードを使用すると、代入が実行される前に入力を検証できます。たとえば、LSIZEの値を要求する場合のブール条件は次のようになります。
VALUE NE NA AND VALUE GE 1 AND VALUE LE 80
IFNOT句には、入力がcondition-expに適合しない場合に備えるテキスト式を指定します。たとえば、プログラム内のエラー処理ルーチンにジャンプするようにします。IFNOTを使用しないでエラーが発生した場合、GETはエラー・メッセージを生成し、入力の待機を再開します。
使用上の注意
現行の入力ストリーム
Oracle OLAPは、現行の入力ストリームから処理の文を取得します。INFILE文を使用すると、デフォルトの入力ストリームを無効にできます。INFILEによって、Oracle OLAPはファイルから入力を読み取ります。入力ファイルの各行には、単一の文を含める必要があります。
INFILEからの入力
GETファンクションが入力ファイルにある場合、Oracle OLAPは入力ファイルの次の行をGETに対する入力であるとみなします。GETファンクションをコールする文に続く行(複数可)に、GETに対する必要な入力を必ず指定する必要があります。
たとえば、使用する小数点以下の桁数を取得するためにGETをコールするレポート・プログラムを起動する1行が入力ファイルに含まれているとします。入力ファイルは、この後に他の文が続きます。プログラム・コールに続く行に小数点以下の必要な桁数を指定しない場合、GETは入力ファイルのその後の行を文として実行せずに検査して目的の数値を探します。「テキスト値を取得するGETの使用方法」を参照してください。
INTEGERのディメンション値
GETがINTEGERディメンションの値を要求する場合、通常、入力はディメンション値の位置番号の形式です。
INTEGER以外のディメンション値
整数以外のディメンション値は、大文字で入力して一重引用符で囲む必要があります。
DWMQYディメンションへの値の入力
DAY、WEEK、MONTH、QUARTERまたはYEARディメンションの値は、ディメンションのVNF書式(ディメンションのVNFがないときはデフォルトのVNFの書式)で、または日付として入力できます。VNF書式で値を入力する方法の説明は、VNFコマンドを参照してください。日付として値を入力する場合の有効な入力スタイルの説明は、「日付のみの入力値」を参照してください。
VNF書式を使用する場合でも、日付として値を指定する場合でも、時間ディメンションのその型に関連する日付の構成要素のみを指定する必要があります。たとえば、MONTHディメンションの場合、月および年のみを指定します。
TEXT値またはID値
GETに対する入力として指定したTEXT値やID値の大文字と小文字の区別は、入力したときと同じ状態で維持されます。TEXT値およびID値は、一重引用符または二重引用符で始まる場合および埋め込まれた空白や\dnnn
、\n
などのエスケープ・シーケンスが含まれる場合を除き、引用符で囲む必要はありません。(値中の一重引用符は、Oracle OLAPがリテラルと解釈するように、\'
のようにバックスラッシュを前に置きます。)
日付のみの値
GETがDATE値を要求する場合、「日付のみの入力値」の説明に示す日付の有効なスタイルで入力できます。Oracle OLAPはDATEORDERオプションの現行値を使用して、日付のみの値のあいまいさを解決します。
数値
GETは、SHORTDECIMAL値またはDECIMAL値をINTEGER値に変換する際に値を丸めます。GETがINTEGER値またはSHORTINTEGER値を要求し、入力がそのデータ型の範囲外の数値である場合、GETはエラー・メッセージを生成し、入力の待機を再開します。
RAW TEXTを指定したGET
GETがRAW TEXT入力を要求し、入力が提供されない場合、GETはNULL文字列(''
)を返します。RAW TEXT以外の型のデータの場合、GETは入力があるまで待機します。
POSLISTを指定したGET
GETファンクションとともにPOSLISTキーワードを使用した場合、Oracle OLAPは、ディメンション名ではなく、ディメンション値を識別する位置の値の入力を要求します。POSLISTキーワードの構文は、代入文を使用して作成された代入文とともにGETファンクションを使用するのか、LIMITコマンドとともにGETファンクションを使用するのかによって異なります。GETファンクションの結果と等しい変数を設定するには、次の構文を使用します。
expression = GET(POSLIST dimension)
ディメンションをGETファンクションによって返される値に制限するには、次の構文に示すようにPOSLISTキーワードを2回指定します。
LIMIT dimension TO POSLIST GET(POSLIST dimension)