OracleDI Driver for LDAPを使用するときには、以降で説明する文を使用できます。標準SQL構文を使用して、リレーショナル・データの構造とデータを管理できます。
重要な注意: 外部データベースを使用する場合は、ここで説明するコマンドのかわりに、固有の問合せエンジン構文を使用できます。
重要な注意: OracleDI Driver for LDAPは自動コミット・モードでのみ動作します。コミット・コマンドやロールバック・コマンドを使用して明示的にトランザクションを管理することはできません。
重要な注意: 外部データベースを使用してLDAPツリー・データを保管する場合、一時表ではDDL文のみを実行できます。
次の表は、示されているDML操作を特定のキー・フィールドに対して実行するときに適用される推奨事項をまとめたものです。
列の種類 |
挿入 |
更新 |
削除 |
---|---|---|---|
外部キー
|
マスター表の参照制約および順序のある表の移入操作に注意してください。 |
使用不可 |
マスター表の参照制約および順序のある削除要求に注意してください。 |
主キー |
スレーブ表の参照制約および順序のある表の移入操作に注意してください。 |
使用不可 |
スレーブ表の参照制約および順序のある削除要求に注意してください。 |
IS_xxx
|
正しいフラグ値を元のオブジェクト・クラスに関連付けることに注意してください。 |
使用不可 |
OK |
Key_Column
|
正しいLDAP構文でRDN値を設定することに注意してください。
|
使用不可 |
OK |
任意の数のコマンドを結合できます。「;」を使用して各コマンドを区切ることができますが、使用しなくてもかまいません。
この接続を閉じます。
JDBCインタフェースを使用するときは、このコマンドを呼び出す必要はありません。接続を閉じると自動的に呼び出されます。
切断した後は、この接続で他の問合せを実行することはできません。
INSERT INTO <table_name> [ ( <column_name> [,...]) ] { VALUES (<expression> [,...])| <SELECT Statement> }
1つ以上の新しいデータ行を表に挿入します。
SELECT [DISTINCT] { <select_expression> | <table_name>.* | * } [, ... ]
[ INTO <new_table> ]
FROM <table_list>
[ WHERE <expression> ]
[ GROUP BY <expression> [, ...] ]
[ ORDER BY <order_expression> [, ...] ]
[ { UNION [ALL] | {MINUS|EXCEPT} | INTERSECT } <select_statement> ]
<table_list> ::=
<table_name> [ { INNER | LEFT [OUTER] } JOIN <table_name> ON <expression> ] [, ...]
<select_expression> ::=
{ <expression> | COUNT(*) | {COUNT | MIN | MAX | SUM | AVG} (<expression>) <column_alias>}
<order_expression> ::=
{ <column_number> | <column_alias> | <select_expression> } [ ASC | DESC ]
スキーマの1つ以上の表から情報を取得します。
UPDATE table SET column = <expression> [, ...] [WHERE <expression>]
データベースの表のデータを変更します。
<expression> ::=
[NOT] <condition> [ { OR | AND } <condition> ]
<condition> ::=
| <value> { = | < | <= | > | >= | <> | != | IS [NOT] } <value>
| EXISTS(<select_statement>)
| <value> BETWEEN <value> AND <value>
| <value> [NOT] IN ( {<value> [, ...] | selectStatement } )
| <value> [NOT] LIKE <value> [ESCAPE] value }
<value> ::=
[ + | - ] { term [ { + | - | * | / } term ]
| ( condition )
| function ( [parameter] [,...] )
| selectStatement giving one value
{ 'string' | number | floatingpoint | [table.]column | TRUE | FALSE | NULL }
単一の一重引用符(')で開始および終了します。「'」で開始した文字列の中で「'」を作成するには、「"」を使用します。
LIKEでは、任意の数(0を含む)の文字との一致には「%」を使用し、1文字のみの一致には「_」を使用します。「%」自体を検索するには「\%」を使用し、「_」自体を検索するには「\_」を使用します。ESCAPE句を使用すると、他の任意のエスケープ文字を設定できます。
<name> ::=
名前は文字で開始し、任意の数の文字または数字が後に続きます。文字列および引用符で囲まれた識別子を除き、小文字は大文字に変換されます。名前では、大/小文字が区別されません。
引用符付きの識別子は、名前として使用できます(表や列の場合など)。引用符付きの識別子は、引用符(")で開始および終了します。引用符付き識別子の中で「"」を作成するには、「""」を使用します。引用符付き識別子を使用すると、大文字と小文字が混在する表名および列名を作成できます。
例: CREATE TABLE "Address" ("Nr" INTEGER,"Name" VARCHAR); SELECT * FROM "Address"。引用符付き識別子は文字列ではありません。
日付値は一重引用符(')で開始および終了し、書式はyyyy-mm-ddです(java.sql.Dateを参照)。
時刻値は一重引用符(')で開始および終了し、書式はhh:mm:ssです(java.sql.Timeを参照)。
バイナリ・データは一重引用符(')で開始および終了し、書式は16進数です。たとえば、'0004ff'は3バイトで、1バイト目が0、2バイト目が4、3バイト目が255(0xff)です。
数値ファンクション |
---|
ABS(d) |
double値の絶対値を返します。 |
ACOS(d) |
角度のアーク・コサインを返します。 |
ASIN(d) |
角度のアーク・サインを返します。 |
ATAN(d) |
角度のアーク・タンジェントを返します。 |
ATAN2(a,b) |
a/bのタンジェントを返します。 |
BITAND(a,b) |
a & bを返します。 |
BITOR(a,b) |
a | bを返します。 |
CEILING(d) |
dより小さくない最小の整数を返します。 |
COS(d) |
角度のコサインを返します。 |
COT(d) |
角度のコタンジェントを返します。 |
DEGREES(d) |
ラジアンを角度に変換します。 |
EXP(d) |
e(2.718...)のd乗を返します。 |
FLOOR(d) |
dより大きくない最大の整数を返します。 |
LOG(d) |
eを底とする自然対数を返します。 |
LOG10(d) |
10を底とする対数を返します。 |
MOD(a,b) |
モジュロbを返します。 |
PI() |
円周率(3.1415...)を返します。 |
POWER(a,b) |
aのb乗を返します。 |
RADIANS(d) |
角度をラジアンに変換します。 |
RAND() |
0.0以上1.0未満のランダムな値xを返します。 |
ROUND(a,b) |
aを小数点以下b桁に四捨五入します。 |
SIGN(d) |
dが0より小さい場合は-1、dが0の場合は0、dが0より大きい場合は1を返します。 |
SIN(d) |
角度のサインを返します。 |
SQRT(d) |
平方根を返します。 |
TAN(d) |
角度のタンジェントを返します。 |
TRUNCATE(a,b) |
aを小数点以下b桁に切り捨てます。 |
文字列ファンクション |
---|
ASCII(s) |
sの左端の文字のASCIIコードを返します。 |
BIT_LENGTH(s) |
文字列の長さをビット数で返します。 |
CHAR(c) |
ASCIIコードがcの文字を返します。 |
CHAR_LENGTH(s) |
文字列の長さを文字数で返します。 |
CONCAT(str1,str2) |
str1とstr2を連結して返します。 |
DIFFERENCE(s1,s2) |
s1とs2の音の差を返します。 |
HEXTORAW(s1) |
文字列を16進数からRAWに変換して返します。 |
INSERT(s,start,len,s2) |
startからlenの個数の文字をs2に置き換えた文字列を返します。 |
LCASE(s) |
小文字に変換します。 |
LEFT(s,count) |
sの左端の文字数を返します。 |
LENGTH(s) |
sの文字数を返します。 |
LOCATE(search,s,[start]) |
s内のstartより後で最初に見つかったsearchのインデックス(1=左、0=見つからない)を返します。 |
LTRIM(s) |
sの先頭にあるすべての空白を除去します。 |
OCTET_LENGTH(s) |
文字列の長さをバイト数で返します。 |
RAWTOHEX(s) |
変換した文字列を返します。 |
REPEAT(s,count) |
sをcountの回数繰り返したものを返します。 |
REPLACE(s,replace,s2) |
sに出現するすべてのreplaceをs2に置き換えます。 |
RIGHT(s,count) |
sの右端の文字数を返します。 |
RTRIM(s) |
最後にあるすべての空白を除去します。 |
SOUNDEX(s) |
sの音を表す4文字コードを返します。 |
SPACE(count) |
countの個数のスペースで構成される文字列を返します。 |
SUBSTR(s,start[,len]) |
SUBSTRINGの別名です。 |
SUBSTRING(s,start[,len]) |
start(1=左端)から始まる長さlenの部分文字列を返します。 SUBSTRING(s FROM start [FOR len])という構文も使用できます。 |
TRIM |
TRIM([{LEADING | TRAILING | BOTH}] FROM s): sから前と後のスペースを除去します。 |
UCASE(s) |
大文字に変換します。 |
LOWER(s) |
小文字に変換します。 |
UPPER(s) |
大文字に変換します。 |
日時ファンクション |
---|
CURDATE() |
現行日付を返します。 |
CURTIME() |
現在の時刻を返します。 |
CURRENT_DATE |
現行日付を返します。 |
CURRENT_TIME |
現在の時刻を返します。 |
CURRENT_TIMESTAMP |
現在のタイムスタンプを返します。 |
DATEDIFF(s, d1,d2) |
sで指定されている時間の単位で、日時d1から日時d2までの経過時間のカウントを返します。sには'ms'=ミリ秒、'ss'=秒、'mi'=分、'hh'=時、'dd'=日、'mm'=月、'yy'=年を指定できます。 |
DAYNAME(date) |
曜日の名前を返します。 |
DAYOFMONTH(date) |
月の日付を返します(1〜31)。 |
DAYOFWEEK(date) |
週の曜日を返します(1は日曜日)。 |
DAYOFYEAR(date) |
年単位の日数を返します(1〜366)。 |
EXTRACT |
EXTRACT ({YEAR | MONTH | DAY | HOUR | MINUTE | SECOND} FROM <datetime>): <datetime>の値から適切な部分を抽出します。 |
HOUR(time) |
時間の値を返します(0〜23)。 |
MINUTE(time) |
分の値を返します(0〜59)。 |
MONTH(date) |
月の値を返します(1〜12)。 |
MONTHNAME(date) |
月の名前を返します。 |
NOW() |
現行日時をタイムスタンプとして返します。 |
QUARTER(date) |
四半期の値を返します(1〜4)。 |
SECOND(time) |
秒の値を返します(0〜59)。 |
WEEK(date) |
年の何週目かを返します(1〜53)。 |
YEAR(date) |
年の値を返します。 |
システム・ファンクション |
---|
IFNULL(exp,value) |
expがNULLの場合はvalueが返され、それ以外の場合はexpが返されます。 |
CASEWHEN(exp,v2,v2) |
expがtrueの場合はv1が返され、それ以外の場合はv2が返されます。 |
CONVERT(term,type) |
expを別のデータ型typeに変換します。 |
COALESCENCE(e1,e2,e3,...) |
e1がNULLでない場合はe1を返します。e1がNULLの場合はe2を評価します。e2がNULLでない場合はe2を返します。e2がNULLの場合はe3を評価し、同様に続きます。 |
NULLIF(v1,v2) |
v1がv2と等しくない場合はv1を返します。それ以外の場合はNULLを返します。 |
CASE WHEN |
CASE WHEN文には次の2つの構文があります。 CASE v1 WHEN v2 THEN v3 [ELSE v4] END: v1がv2と等しい場合はv3を返します。等しくない場合は、ELSEが指定されている場合はv4を、指定されていない場合はNULLを返します。 CASE WHEN e1 THEN v1[WHEN e2 THEN v2] [ELSE v4] END: e1がtrueの場合はv1を返します。必要に応じて評価を繰り返します。WHENの評価がすべてtrueでない場合、ELSEがある場合はv4を、ない場合はNULLを返します。 |
CAST(term AS type) |
expを別のデータ型typeに変換します。 |
システム/接続ファンクション |
---|
DATABASE() |
この接続のデータベースの名前を返します。 |
USER() |
この接続のユーザー名を返します。 |
IDENTITY() |
この接続によって挿入された最後のID値を返します。 |
注意: 日付値は一重引用符(')で開始および終了し、書式はyyyy-mm-ddです(java.sql.Dateを参照)。時刻値は一重引用符(')で開始および終了し、書式はhh:mm:ssです(java.sql.Timeを参照)。