IF-THEN-ELSEコマンド構成の構文

この項では、IF-THEN-ELSE構成の構文を示します。IF-THEN-ELSEコマンド構成の使用方法は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』「ttIsql内でのIF-THEN-ELSEコマンド構成の使用」を参照してください。

IF [NOT] 
   { Literal1 | :BindVariable1 } 
   { =  | IN } 
   { Literal2 | :BindVariable2 | SelectStatement } 
 THEN "ThenCommands" 
 [ ELSE "ElseCommands" ] ;

ttIsqlIF-THEN-ELSEコマンドには次のパラメータがあります。

パラメータ 説明

IF

IFコマンドはセミコロン(;)で終わる必要があります。

不適切な構文(BindVariablesが存在しない、SELECT文を実行できない、単一の列のみを返さない構文など)を指定すると、IFコマンドは失敗します。

NOT

NOTを使用すると、条件で期待される結果が逆になります。

Literal1, Literal2

比較対象になる値。

BindVariable1, BindVariable2

バインド変数はパラメータと同義です。:BindVariable1表記法を使用して、この構成にバインド変数を渡すことができます。変数の作成と設定には、variableまたはsetvariable ttIsqlコマンドを使用します。

= | IN

IN演算子はSelectStatementとともにのみ使用できます。IN演算子を使用すると、0行以上の行を返すことができます。等号(=)演算子は、単一の行を返す場合にのみ使用します。

SelectStatement

指定するSELECT文はSELECTで始まる必要があります。SELECT文で返すことができるのは、1つの列のみです。また、等号(=)演算子を指定すると、1つの行のみを返すことができます。

データベースに接続していない場合は、SelectStatementは使用できません。

ThenCommands, ElseCommands

THEN句またはELSE句のすべてのコマンドはセミコロンで区切る必要があり、二重引用符を含めることはできません。これらの句を使用すると、PL/SQLでは実行できないhostrunなどのttIsqlコマンドを条件付きで実行できます。THEN句またはELSE句内では、CALL文を使用できます。PL/SQLブロックは使用できません。

IF-THEN-ELSE構成には次の制約があります。

  • LOBデータ型の変数は比較できません。

  • 値は、strcmpを使用して大/小文字を区別して比較されます。文字が埋め込まれた値は、その埋込みが原因でVARCHAR2と一致しない場合があります。