JDBCエスケープ構文にてfnというキーワードを使うことで関数を指定できます。
{fn 関数呼び出し}
ここで関数呼び出しは、以下に挙げるスカラー関数の何れかの名前です。
abs(数式)
JDBCエスケープ構文の{fn abs(数式)}は、組込み構文のABSOLUTE(数式)と同等です。 より詳細な情報は、ABSとABSVAL関数を参照してください。
acos(数)
JDBCエスケープ構文の{fn acos(数)}は、組込み構文のACOS(数)と同等です。より詳細な情報は、ACOSを参照してください。
asin(数)
JDBCエスケープ構文の{fn asin(数)}は、組込み構文のASIN(数)と同等です。より詳細な情報は、ASINを参照してください。
atan(数)
The JDBCエスケープ構文の{fn atan(数)}は、組込み構文のATAN(数)と同等です。より詳細な情報は、ATANを参照してください。
ceiling(数)
JDBCエスケープ構文の{fn ceiling(数)}は、組込み構文のCEILING(数)と同等です。より詳細な情報はCEILおよびCEILING関数を参照してください。
concat(文字式, 文字式)
最初の文字列に二つ目の文字列を連結した文字列が構成されます。もしどちらかの文字列が空なら、返り値はNULLとなります。JDBCエスケープ構文の{fn concat (文字式, 文字式)は、組込み構文の{ 文字式 || 文字式 }と同等です。詳細は、Concatenationを参照してください。
cos(数)
JDBCエスケープ構文の{fn cos(数)}は、組込み構文のCOS(数)と同等です。詳細は、COS 関数を参照してください。
degrees(数)
JDBCエスケープ構文の{fn degrees(数)}は、組込み構文のDEGREES(数)と同等です。詳細はDEGREES 関数を参照してください。
exp(数)
JDBCエスケープ構文の{fn exp(数)}は、組み込み構文のEXP(数)と同等です。詳細はEXP関数を参照してください。
floor(数)
JDBCエスケープ構文の{fn floor(数)}は、組込み構文のFLOOR(数)と同等です。 詳細はFLOOR関数を参照してください。
locate(文字式,文字式 [, 開始位置] )
JDBCエスケープ構文の{fn locate(文字式,文字式 [, 開始位置] )}は、組込み構文のLOCATE(CharacterExpression, CharacterExpression [, StartPosition] )と等価です。詳細はLOCATE関数を参照してください。
log(数)
JDBCエスケープ構文の{fn log(数)}は、組込み構文のLOG(数)と等価です。詳細はLNあるいはLOG関数を参照してください。
log10(数)
JDBCエスケープ構文の{fn log10(数)}は、組込み構文の、LOG10(数)と等価です。詳細はLOG10 関数を参照してください。
mod(整数, 整数)
詳細はMOD関数を参照してください。
pi()
JDBCエスケープ構文の{fn pi()}は、組込み構文のPI()と等価です。詳細はPI 関数を参照してください。
radians(数)
JDBCエスケープ構文の{fn radians(数)}は、組込み構文のRADIANS(数)と等価です。詳細はRADIANS 関数を参照してください。
sin(数)
JDBCエスケープ構文の{fn sin(数)}は、組込み構文のSIN(数)と等価です。詳細はSINを参照してください。
sqrt(浮動小数点数式)
JDBCエスケープ構文の{fn sqrt (浮動小数点数式)}は、組込み構文のSQRT(浮動小数点数式)と等価です。詳細はSQRT関数を参照してください。
substring(文字式, 開始位置, 長さ)
tan(数)
JDBCエスケープ構文の{fn tan(数)}は、組込み構文のTAN(数)と等価です。詳細はTANを参照してください。
TIMESTAMPADDはJDBCエスケープの関数で、JDBCエスケープ関数の構文でのみ利用可能です。
TIMESTAMPADD( 時間の種類, 整数式, タイムスタンプ式 )
日付や時刻にTIMESTAMPADDを実行するには、日付や時刻をタイムスタンプに変換する必要があります。日付は時刻のフィールドに00:00:00.0を与えることでタイムスタンプに変換できます。時刻は現在日付を日付のフィールドに与えることで、タイムスタンプに変換できます。
WHERE節にて、タイムスタンプを計算する関数に日時の列を置くべきではありません。なぜならオプティマイザが、その列への索引を利用しなくなるからです。
TIMESTAMPDIFFはJDBCエスケープの関数で、JDBCエスケープ関数の構文でのみ利用できます。
TIMESTAMPDIFF( 時間の種類, タイムスタンプ式1, タイムスタンプ式2 )
日付や時刻にTIMESTAMPDIFFを実行するには、日付や時刻をタイムスタンプに変換する必要があります。日付は時刻のフィールドに00:00:00.0を与えることでタイムスタンプに変換できます。時刻は現在日付を日付のフィールドに与えることで、タイムスタンプに変換できます。
WHERE節にて、タイムスタンプを計算する関数に日時の列を置くべきではありません。なぜならオプティマイザが、その列への索引を利用しなくなるからです。
次の書き方で、現在より一ヵ月後の値を返します。
{fn TIMESTAMPADD( SQL_TSI_MONTH, 1, CURRENT_TIMESTAMP)}
次の書き方で、現在と2008年1月1日の間が何週間かを返します。
{fn TIMESTAMPDIFF(SQL_TSI_WEEK, CURRENT_TIMESTAMP, timestamp('2008-01-01-12.00.00.000000'))}