式は、オペランド(変数、定数、リテラル、演算子、ファンクション起動およびプレースホルダ)の任意の組合せです。最も単純な式は、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が発生します。 |