6. AND 7. OR
1.8 式の指定 式の指定 式の指定 式の指定
式の指定
式の指定
例 例例 例 emp-ename
'this is a text string' 10
1.8.2 書式 書式 書式 書式 II 、ファンクション表記法 、ファンクション表記法 、ファンクション表記法 、ファンクション表記法
組込みファンクション表記法は、単一行SQL関数へのコールを指定します。
図図図
図 1-10 ファンクション表記法ファンクション表記法ファンクション表記法ファンクション表記法
BNF表記法表記法表記法表記法
function ["(" [DISTINCT | ALL] expr [, expr]...")"] ; 有効な組込みファンクション表記法の例は、次のとおりです。
LENGTH('BLAKE') ROUND(1234.567*43) SYSDATE
1.8.3 書式 書式 書式 書式 III 、 、 、 、 Java 関数式 関数式 関数式 関数式
java_function_name (expr , expr...)
schema.table.java_function_name (expr , expr...)
Java関数の使用方法の詳細は、『Oracle9i Lite Java 開発者ガイド』を参照してください。
1.8.4 書式 書式 書式 書式 IV 、複合式 、複合式 、複合式 、複合式
複合式は、他の式の組合せを指定します。
式の指定
図図図
図 1-11 複合式複合式複合式複合式
BNF表記法表記法表記法表記法 { "(" expr ")"
| { + | - } expr | PRIOR column
| expr( * | / | + | - | ||) expr }
;
関数の組合せの中には、不適当で拒否されるものがあります。たとえば、LENGTH関数は 集計関数内では不適当です。
例 例例 例
('CLARK' || 'SMITH') LENGTH('MOOSE') * 57 SQRT(144) + 72
my_fun(TO_CHAR(sysdate,'DD-MM-YY'))
1.8.5 書式 書式 書式 書式 V、 、 、 、DECODE 式 式 式 式
DECODE式には、特別なDECODE構文を使用します。
図 図図
図 1-12 DECODE式式式式
式の指定
BNF表記法表記法表記法表記法
DECODE "(" expr "," search "," result [, search "," result]... [, default] ")" ; この式を評価するために、Oracle Liteは、expr を各search と1つずつ比較します。expr と等 しいsearchがある場合、Oracle Liteは、対応するresultを返します。一致するものがない
と、Oracle Liteはdefaultを返すか、defaultが省略されている場合、NULLを返します。expr
およびsearchに文字データが含まれている場合、Oracle Liteは、非空白埋め比較を使用し
て、それらを比較します。
search、resultおよびdefault値は、式から導出できます。Oracle Liteは、すべてのsearch値 を評価してからexprと比較するのではなく、exprと比較する直前にのみそれぞれのsearch値 を評価します。したがって、Oracle Liteは、前のsearchがexprと等しい場合、searchを評価 しません。
Oracle Liteは、exprと各search値を最初のsearch値のデータ型に自動的に変換してから比較
します。Oracle Liteは、戻り値を最初のresultと同じデータ型に自動変換します。最初の
resultのデータ型がCHAR、あるいは最初のresultがNULLの場合、Oracle Liteは、戻り値 をデータ型VARCHAR2に変換します。
DECODE式の中では、Oracle Liteは、2つのNULL値を等価であるとみなします。exprが
NULLの場合、Oracle Liteは、同様にNULLである最初のsearchのresultを返します。
expr、search、resultおよびdefaultも含めたDECODE式内のコンポーネントの最大数は、255 です。
例 例例 例
この式は、値DEPTNOをデコードします。この例では、DEPTNOが10の場合、式の評価は 'ACCOUNTING'となります。DEPTNOが10、20、30または40でないと、式は'NONE'を返し ます。
DECODE (deptno,10, 'ACCOUNTING', 20, 'RESEARCH', 30, 'SALES', 40, 'OPERATION', 'NONE')
1.8.6 書式 書式 書式 書式 VI 、式リスト 、式リスト 、式リスト 、式リスト
式リストは、カンマで区切った一連の式です。全体をカッコで囲みます。
図 図図
図 1-13 式リスト式リスト式リスト式リスト
式の指定
BNF表記法表記法表記法表記法
"("[ expr [, expr]...] ")"
1.8.7 書式 書式 書式 書式 VII、変数式 、変数式 、変数式 、変数式
変数式は、オプションの標識変数を持ったホスト変数を指定します。この書式の式は、プロ グラム・インタフェースに使用されることがあります。
図 図図
図 1-14 変数式変数式変数式変数式
BNF表記法表記法表記法表記法
":" host_variable [[INDICATOR] ":" indicator_variable]
1.8.8 書式 書式 書式 書式 VIII 、 、 、 、 CAST 式 式 式 式
CAST式は、組込みデータ型またはコレクション型の値を、別の組込み型またはコレクショ ン型の値に変換します。
図 図図
図 1-15 CAST式式式式
BNF表記法表記法表記法表記法
CAST "(" expr AS datatype_name ")"
オペランドの場合、exprは組込みデータ型です。次の表は、どの組込みデータ型が別データ 型へのCAST変換を受け入れるかを示します。(CASTはLONG、LONG RAWまたはLOB データ型をサポートしません。)
表 表表
表 1-8 CAST変換を受け入れる組込みデータ型変換を受け入れる組込みデータ型変換を受け入れる組込みデータ型変換を受け入れる組込みデータ型
式の指定
DATEデータ型は、POLITE.INIファイルに定義したSQLCompatibilityの設定の影響を 受けます。
■ 次のように設定されていると、DATEおよびTIMESTAMPは等価です。
SQLCompatibility=Oracle
■ 次のように設定されていると、DATEおよびTIMESTAMPは等価でありません。
SQLCompatibility=SQL92
POLITE.INIファイルの詳細は、各プラットフォームに対応する開発者ガイドを参照してく
ださい。
NUMERICには、データ型BIGINT、BINARY、BIT、DECIMAL、DOUBLE PRECISION、
FLOAT、INTEGER、NUMBER、NUMERIC、REAL、SMALLINTおよびTINYINTが含ま
れます。
組込みデータ型の例 組込みデータ型の例組込みデータ型の例 組込みデータ型の例
SELECT CAST ('1997-10-22' AS DATE) FROM DUAL;
SELECT * FROM t1 WHERE CAST (ROWID AS CHAR(5)) = '01234';
DATE X X X
TIME X X X
TIMESTAMP X X X X
RAW X X
表 表表
表 1-8 CAST変換を受け入れる組込みデータ型変換を受け入れる組込みデータ型変換を受け入れる組込みデータ型変換を受け入れる組込みデータ型(続き)(続き)(続き)(続き)
変換元 変換元変換元 変換元/ 変換先 変換先変換先 変換先
CHAR、、、、
VARCHAR2 NUMERIC DATE TIME TIMESTAMP RAW
Oracle Lite SQLのデータ型およびリテラル