6. AND 7. OR
1.8 式の指定 式の指定 式の指定 式の指定
式の指定
式の指定
SQLの使用方法 1-23 例例例
例 emp-ename
'this is a text string' 10
1.8.2 書式 書式 書式 書式 II 、ファンクション表記法 、ファンクション表記法 、ファンクション表記法 、ファンクション表記法
組込みファンクション表記法は、図1-10に示す構文を使用して、単一行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関数の使用方法の詳細は、『Oracle Database Lite for Java開発者ガイド』を参照してく ださい。
式の指定
1.8.4 書式 書式 書式 書式 IV 、複合式 、複合式 、複合式 、複合式
複合式は、図1-11に示す構文を使用して、他の式の組合せを指定します。
図 図図
図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'))
式の指定
SQLの使用方法 1-25
1.8.5 書式 書式 書式 書式 V 、 、 、 、 DECODE 式 式 式 式
DECODE式には、図1-12に示す特別なDECODE構文を使用します。
図 図図
図1-12 DECODE式式式式
BNF表記法表記法表記法表記法
DECODE "(" expr "," search "," result [, search "," result]... [, default] ")" ; 式を評価するために、Oracle Database Liteは、exprを各search値と1つずつ比較します。
exprと等しいsearchがある場合、Oracle Database Liteは、対応するresultを返します。一致 するものがないと、Oracle Database Liteはdefaultを返すか、defaultが省略されている場合 は、NULLを返します。exprおよびsearchに文字データが含まれている場合、Oracle
Database Liteは、非空白埋め比較セマンティクスを使用して、それらを比較します。
検索(search)、結果(result)およびデフォルト(default)の各値を式から導出できます。
Oracle Database Liteは、すべてのsearch値を評価してからexprと比較するのではなく、
exprと比較する直前になってからそれぞれのsearch値を評価します。したがって、Oracle
Database Liteは、前のsearchがexprと等しい場合、searchを評価しません。
Oracle Database Liteは、比較の前に、exprと各search値を最初のsearch値のデータ型に自
動的に変換します。Oracle Database Liteは、戻り値を最初のresultと同じデータ型に自動的 に変換します。最初のresultのデータ型がCHARの場合または最初のresultがNULLの場合
は、Oracle Database Liteは、戻り値をデータ型VARCHAR2に変換します。
DECODE式の中では、Oracle Database Liteは、2つのNULL値を等価であるとみなします。
exprがNULLの場合、Oracle Database 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に示すように、EXPRESSION LISTはカンマで区切った一連の式です。全体をカッ コで囲みます。
図図図
図1-13 式リスト式リスト式リスト式リスト
BNF表記法表記法表記法表記法
"("[ expr [, expr]...] ")"
1.8.7 書式 書式 書式 書式 VII 、変数式 、変数式 、変数式 、変数式
VARIABLE EXPRESSIONは、図1-14に示すように、オプションの標識変数を持ったホスト 変数を指定します。この書式の式は、プログラム・インタフェースに使用されることがあり ます。
図 図図
図1-14 変数式変数式変数式変数式
BNF表記法表記法表記法表記法
":" host_variable [[INDICATOR] ":" indicator_variable]
1.8.8 書式 書式 書式 書式 VIII 、 、 、 、 CAST 式 式 式 式
CAST式は、図1-15に示すように、組込みデータ型またはコレクション型の値を、別の組込 み型またはコレクション型の値に変換します。
図 図図
図1-15 CAST式式式式
式の指定
SQLの使用方法 1-27 BNF表記法表記法表記法表記法
CAST "(" expr AS datatype_name ")"
オペランドの場合、exprは組込みデータ型です。表1-8は、どの組込みデータ型が別データ 型へのCAST変換を受け入れるかを示します。(CASTはLONG、LONG RAWまたはLOBデー タ型をサポートしません。)
Dateデータ型は、POLITE.INIファイルに定義したSQLCompatibilityの設定の影響を 受けます。
■ 次のように設定されていると、DateおよびTimestampは等価です。
SQLCompatibility=Oracle
■ 次のように設定されていると、DateおよびTimestampは等価ではありません。
SQLCompatibility=SQL92
POLITE.INIファイルの詳細は、『Oracle Database Lite管理およびデプロイ・ガイド』を参 照してください。
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';
表 表表
表1-8 CAST変換を受け入れる組込みデータ型変換を受け入れる組込みデータ型変換を受け入れる組込みデータ型変換を受け入れる組込みデータ型 変換元
変換元変換元 変換元/ 変換先 変換先変換先 変換先
CHAR、、、、
VARCHAR2 NUMERIC DATE TIME TIMESTAMP RAW CHAR、、、、
VARCHAR2
× × × × × ×
NUMERIC × ×
DATE × × ×
TIME × × ×
TIMESTAMP × × × ×
RAW × ×
Oracle Database Lite SQLのデータ型およびリテラル