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