式は、オペランド(変数、定数、リテラル、演算子、ファンクション起動およびプレースホルダ)の任意の組合せです。最も単純な式は、1個の変数で構成されています。
PL/SQLコンパイラは、式を構成するオペランドおよび演算子の型から、式のデータ型を決定します。式が評価されたときは、その型の1つの値が結果として得られます。
ここでのトピック
構文

参照:
boolean_expression ::=

「function_call ::=」を参照してください。
boolean_literal ::=

conditional_predicate ::=

other_boolean_form ::=

参照:
character_expression ::=

参照:
collection_constructor ::=

date_expression ::=

参照:
numeric_expression ::=

numeric_subexpression ::=

参照:
function_call ::=

searched_case_expression ::=

「boolean_expression ::=」を参照してください。
simple_case_expression ::=

セマンティクス
boolean_expression
値がTRUE、FALSEまたはNULLの式です。詳細は、「BOOLEAN式」を参照してください。
boolean_expressionの制限 SQLにはBOOLEANに相当するデータ型がないため、次の操作は実行できません。
データベース表の列にBOOLEAN式を割り当てる操作
データベース表の列の値を選択またはフェッチしてBOOLEAN変数に入れる操作
SQL文、SQLファンクションまたはSQL文から起動されたPL/SQLファンクションでBOOLEAN式を使用する操作
NOT、AND、OR
詳細は、「論理演算子」を参照してください。
boolean_constant
BOOLEAN型の定数の名前。
boolean_function_call
BOOLEAN値を戻す、事前に定義されたファンクションの起動。セマンティクスの詳細は、「function_call」を参照してください。
boolean_variable
BOOLEAN型の変数の名前。
conditional_predicate
詳細は、「トリガーを起動したDML文を検出する条件述語」を参照してください。
other_boolean_form
collection
コレクション変数の名前。
EXISTS
collectionのindex番目の要素が存在する場合はTRUE、それ以外の場合はFALSEを戻すコレクション・メソッド(ファンクション)。詳細は、「EXISTSコレクション・メソッド」を参照してください。
EXISTSの制限 collectionが連想配列である場合、EXISTSは使用できません。
index
データ型PLS_INTEGERまたはPLS_INTEGERに暗黙的に変換可能なデータ型を持つ数式である必要があります(後者の詳細は「PLS_INTEGERの事前定義のサブタイプ」を参照してください)。
IS [NOT] NULL
詳細は、「IS [NOT] NULL演算子」を参照してください。
BETWEEN expression AND expression
詳細は、「BETWEEN演算子」を参照してください。
IN expression [, expression ]...
詳細は、「IN演算子」を参照してください。
LIKE pattern
詳細は、「LIKE演算子」を参照してください。
relational_operator
詳細は、「関係演算子」を参照してください。
SQL
直前に実行されたSELECT文またはDML文に関連付けられた暗黙カーソル。詳細は、「暗黙カーソル」を参照してください。
%FOUND、%ISOPEN、%NOTFOUND
「暗黙カーソル属性」および「名前付きカーソル属性」で説明されているカーソル属性。
character_expression
文字データ型(CHARファミリのデータ型)の値を持つ式(「CHARデータ型ファミリ」を参照)。
character_constant
文字データ型の定数の名前。
character_function_call
文字データ型または暗黙的に文字データ型に変換可能な値を戻す、事前に定義されたファンクションの起動。セマンティクスの詳細は、「function_call」を参照してください。
character_literal
文字データ型のリテラル。
character_variable
文字データ型の変数の名前。
||
連結演算子で、ある文字列オペランドを別の文字列オペランドに追加します。詳細は、「連結演算子」を参照してください。
collection_constructor
指定された値を持つ要素を使用して、指定された型のコレクションを構成します。詳細は、「コレクションのコンストラクタ」を参照してください。
collection_type
事前に宣言されているネストした表型またはVARRAY型の名前(連想配列型ではありません)。
value
collection_typeのコレクション要素の有効な値。
collection_typeがVARRAY型の場合は最大サイズがあり、値の数はこのサイズを超えることができません。collection_typeがネストした表型の場合は、最大サイズがありません。
値を指定しないと、構成されるコレクションはNULLではなく空になります(空とNULLの違いは、「コレクション型」を参照してください)。
date_expression
日付データ型(DATEファミリのデータ型)の値を持つ式(「DATEデータ型ファミリ」を参照)。
date_constant
日付データ型の定数の名前。
date_function_call
日付データ型の値または暗黙的に日付データ型に変換可能な値を戻す、事前に定義されたファンクションの起動。セマンティクスの詳細は、「function_call」を参照してください。
date_literal
日付データ型の値または暗黙的に日付データ型に変換可能な値を持つリテラル。
date_variable
日付データ型の変数の名前。
+, -
加算と減算の演算子。
numeric_expression
日付数値型(DATEファミリのデータ型)の値を持つ式(「NUMBERデータ型ファミリ」を参照)。
+, -, /, *, **
加算、減算、除算、乗算、指数の演算子。
numeric_subexpression
collection
コレクション変数の名前。
COUNT、FIRST、LAST、LIMIT、NEXT、PRIOR
コレクション・メソッドの詳細は、「コレクション・メソッドの起動」を参照してください。
named_cursor%ROWCOUNT
「名前付きカーソル属性」を参照してください。
numeric_constant
数値データ型の定数の名前。
numeric_function_call
数値データ型の値または暗黙的に数値データ型に変換可能な値を戻す、事前に定義されたファンクションの起動。セマンティクスの詳細は、「function_call」を参照してください。
numeric_literal
数値データ型のリテラル。
numeric_variable
数値データ型の変数の名前。
SQL%ROWCOUNT
「暗黙カーソル属性」で説明されているカーソル属性。
SQL%BULK_ROWCOUNT]
「SQL%BULK_ROWCOUNT」で説明されているカーソル属性。
exponent
数式。
function_call
function
事前に定義されたファンクションの名前。
parameter [, parameter ]...
コールされているファンクションの実パラメータのリスト。各実パラメータのデータ型は、対応する仮パラメータのデータ型と互換性がある必要があります。使用できる実パラメータは仮パラメータのモードで決まります。
| 仮パラメータのモード | 実パラメータ |
|---|---|
IN |
定数、初期化された変数、リテラルまたは式 |
OUT |
データ型がNOT NULLとして定義されていない変数 |
IN OUT |
変数(通常は、文字列バッファまたは数値アキュムレータ) |
ファンクションによってパラメータのデフォルト値が指定される場合は、パラメータ・リストでそのパラメータを省略できます。ファンクションにパラメータがない場合、またはファンクションによってすべてのパラメータにデフォルト値が指定される場合は、パラメータ・リストを省略するか、または空のパラメータ・リストを指定することができます。
searched_case_expression
WHEN boolean_expression THEN result
boolean_expressionは順番に評価されます。boolean_expressionの値がTRUEである場合は、boolean_expressionに関連付けられているresultが戻されます。後続のboolean_expressionは評価されません。
ELSE result
resultは、値がTRUEのboolean_expressionが存在しない場合にのみ戻されます。
ELSE句を省略すると、検索CASE式ではNULLが戻されます。
simple_case_expression
selector
BLOB、BFILEまたはユーザー定義型を除くPL/SQL型の式。selectorは1回評価されます。
WHEN selector_value THEN result
selector_valueは順番に評価されます。selector_valueがselectorの値である場合は、selector_valueに関連付けられているresultが戻されます。後続のselector_valueは評価されません。
selector_valueは、BLOB、BFILE、ADT、PL/SQLレコード、連想配列、VARRAYまたはネストした表を除く任意のPL/SQL型にできます。
ELSE result
resultは、selectorと同じ値を持つselector_valueが存在しない場合にのみ戻されます。
ELSE句を省略すると、単純なcase式ではNULLが戻されます。
|
注意: リテラルのNULLをすべてのresult (ELSE句のresultを含む)に指定すると、エラーPLS-00617が発生します。 |