ttIsql内でのIF-THEN-ELSEコマンド構成の使用

IF-THEN-ELSEコマンド構成を使用すると、ttIsqlセッションに条件ブランチ・ロジックを実装できます。

IFコマンドによって条件がテストされ、THEN句内またはオプションのELSE句内のコマンドを実行するかが決定されます。SQL文、SQLスクリプト、PL/SQLブロックまたはTimesTenユーティリティのコマンドを使用できます。

ノート:

IF-THEN-ELSE構成の構文の詳細は、Oracle TimesTen In-Memory DatabaseリファレンスttIsqlの項を参照してください。

次の例では、TimesTenデータベースで有効になっているロックのタイプを確認するバインド変数を作成およびテストします。これでは、autovariablesコマンドを使用し、ttConfigurationに対するコールの結果からバインド変数が作成されます。この値はparamvalue変数をテストすることによってIF-THEN-ELSE条件内でテストできます。

ノート:

autovariablesコマンドの詳細は、「取得した列のバインド変数の自動作成」を参照してください。

Command> SET AUTOVARIABLES ON;
Command> CALL TTCONFIGURATION('LockLevel');
PARAMNAME, PARAMVALUE
< LockLevel, 0 >
1 row found.
Command> IF :paramvalue = 1 THEN "e:Database-level locking is enabled"
> ELSE "e:Row-level locking is enabled";
Row-level locking is enabled

次の例では、employees表の存在の有無が確認されます。存在しない場合、employees表を作成するSQLスクリプトが実行されます(存在する場合はメッセージが表示されます)。

Command> IF 0 = "SELECT COUNT(*) FROM SYS.TABLES 
WHERE TBLNAME LIKE 'employees';"
THEN "e:EMPLOYEES table already exists"
ELSE "@HR_CRE_TT.SQL;";
EMPLOYEES table already exists