前へ
前へ
 
次へ
次へ

バインド変数構文について

バインド変数構文は、指定したアイテムのセッション・ステートを参照するためにOracle Application ExpressでSQLまたはPL/SQLを使用する場合はいつでも使用できます。次に例を示します。

SELECT * FROM employees WHERE last_name like '%' || :SEARCH_STRING || '%'

この例では、検索文字列がページ・アイテムです。リージョン・タイプがSQL問合せとして定義されている場合、標準SQLバインド変数構文を使用して値を参照できます。バインド変数を使用すると、解析済のSQL問合せがデータベースによって再利用されるため、サーバーによるメモリーの使用が最適化されます。

バインド変数構文を使用する場合は、次の規則に注意してください。

SQL問合せまたはLOVに基づいたリージョンでのバインド変数の使用

リージョン・タイプが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無名ブロック構文を使用して作成されます。つまり、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_idfirst_nameおよびjob_idの値には、P1_EMP_IDP1_NAMEおよびP1_JOBの値が移入されます。