ホーム > アプリケーション・ビルダーの概念 > セッション・ステート値の管理 > バインド変数構文について
前へ |
次へ |
バインド変数構文は、指定したアイテムのセッション・ステートを参照するためにOracle Application ExpressでSQLまたはPL/SQLを使用する場合はいつでも使用できます。次に例を示します。
SELECT * FROM employees WHERE last_name like '%' || :SEARCH_STRING || '%'
この例では、検索文字列がページ・アイテムです。リージョン・タイプがSQL問合せとして定義されている場合、標準SQLバインド変数構文を使用して値を参照できます。バインド変数を使用すると、解析済のSQL問合せがデータベースによって再利用されるため、サーバーによるメモリーの使用が最適化されます。
バインド変数構文を使用する場合は、次の規則に注意してください。
バインド変数名は、アイテム名に対応している必要があります。
バインド変数名は、大/小文字が区別されません。
バインド変数名は、30文字以下である必要があります(有効なOracle識別子である必要があります)。
ページ・アイテム名とアプリケーション・アイテム名は255文字以下に設定できますが、アプリケーション・アイテムをバインド変数構文を使用したSQL内で使用する場合、そのアイテム名は30文字以下で指定する必要があります。
リージョン・タイプがSQL問合せ、SQL問合せ(SQL問合せを戻すPL/SQLファンクション本体)、またはLOVとして定義されている場合は、次の構文を使用してセッション・ステートを参照できます。
:MY_ITEM
これを行うための一般的な方法の1つは、セッション・ステート変数をWHERE句
に組み込むことです。次の例では、アイテムTHE_DEPTNO
の値を、SQL問合せから定義されるリージョンにバインドする方法を示します。
SELECT last_name, job_id, salary FROM employees WHERE department_id = :THE_DEPTNO
PL/SQLプロシージャとして定義されたリージョン・タイプは、PL/SQL無名ブロック構文を使用して作成されます。つまり、PL/SQLブロックを囲むために開始キーワードおよび終了キーワードが使用されます。次に例を示します。
IF
:P1_JOB IS NOT NULL THEN INSERT INTO employees (employee_id, first_name, job_id) VALUES (:P1_EMP_ID
, :P1_NAME, :P1_JOB) end if;
この例では、employee_id
、first_name
およびjob_id
の値には、P1_EMP_ID
、P1_NAME
およびP1_JOB
の値が移入されます。