OLAP行関数はディメンション・オブジェクトで使用されるためにSQL行関数の構文を拡張します。SQL行関数を使用するならば、この構文に見覚えがあるはずです。これらの関数は、キューブおよびキューブ・ディメンションへのロード時にリレーショナル・データで、および計算されたメジャーの作成時にOLAP関数と共に使用できます。
この章ではOLAPの行関数の式構文について説明します。内容は次のとおりです。
A B C D E F G H I L M N O P R S T U V W
A
B
C
D
E
F
G
H
I
L
M
N
O
P
R
S
T
U
V
W
行関数は次のカテゴリに分けられます。
数値関数は、数値の入力を受け取って数値を返します。
これらの関数は、文字の入力を受け取って文字を返します。
これらの関数は、日付、タイムスタンプ、間隔の値を操作します。
これらの関数は、あるデータ型から別のデータ型に値を変更します。
ACOSは、指定した余弦の角度をラジアン単位で計算します。
ADD_MONTHSは、指定の日付から指定した月数後の日付を返します。
開始日が月末の場合、または返される日付を含む月の日数が少ない場合は、ADD_MONTHSはその月の最後の日を返します。それ以外の場合、返される日付は開始日です。
ASCIIは、式の最初の文字の10進表現を返します。
ASCIISTRは、任意のキャラクタ・セットの文字列を、データベース・キャラクタ・セットのASCIIに変換します。ASCII以外の文字は、\xxxxで表されます。xxxxはUTF-16コード・ユニットです。
ASINは、指定した正弦の角度をラジアン単位で計算します。
ATANは、指定した正接の角度をラジアン単位で計算します。
ATAN2を使用すると、所定の比率の逆正接を示す全範囲(0から2piまで)の数値を取得できます。
ATAN2は、所定の比率の逆正接を示す全範囲(0から2piまで)の数値を返します。この関数は、引数の正負に応じて-piからpiまでの値を返します。
ATANを使用すると、指定した正接(比率ではない)の角度がラジアン単位で計算されます。
BIN_TO_NUMは、ビット・ベクトルを同等の数値に変換します。
BITANDは、負ではない2つの整数を表すビットに対してAND演算子の計算を行って、整数を返します。通常、この関数は、DECODE関数と一緒に使用します。
AND演算子は2つのビット値を比較します。両方の値が1の場合は1を返します。いずれかまたは両方の値が0の場合は0を返します。
CASTは、あるデータ型の値を別のデータ型に変換します。
引数
exprは、いずれかのデータ型の式にすることができます。
type_nameは、表1-2「ディメンション・データ型」にリストされているいずれかのデータ型です。
表3-1に、どのデータ型が、どの組込みデータ型にキャストできるかを示します。NUMBERには、NUMBER、DECIMALおよびINTEGERが含まれます。DATETIMEには、DATE、TIMESTAMP、TIMESTAMP WITH TIMEZONEおよびTIMESTAMP WITH LOCAL TIMEZONEが含まれます。INTERVALには、INTERVAL DAY TO SECONDとINTERVAL YEAR TO MONTHが含まれます。
CEILは、指定した数値以上の最小の自然数を返します。
CHARTOROWIDは、テキスト・データ型からROWIDデータ型に値を変換します。
ROWID疑似列の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
CHRは、整数を、データベース・キャラクタ・セットまたは各国語キャラクタ・セットにおいて等価のバイナリ値を含む文字に変換します。
シングルバイト・キャラクタ・セットでは、n > 256の場合に、CHRはmod(n, 256)と等価なバイナリに変換します。
Unicode各国語キャラクタ・セットとすべてのマルチバイト・キャラクタ・セットでは、nは1つの完全なコード・ポイントに解決される必要があります。コード・ポイントは検証されないため、無効なコード・ポイントを指定すると、結果は不定になります。
COALESCEは、式のリストから最初のNULL以外の式を返します。または、すべての式がNULLの場合はNULLを返します。
CONCATは、2つの式をシングル・キャラクタ文字列として結合します。戻り値のデータ型は式と同じであるか、データ型が混在している場合は可逆変換となるデータ型です。
COSは、角度の余弦を計算します。
CURRENT_DATEは、セッション・タイムゾーンでの現在の日付を返します。
CURRENT_TIMESTAMPは、セッション・タイムゾーンでの現在の日付と時刻を返します。タイムゾーン・オフセットで、セッションの現在のローカル時間を指定します。
DBTIMEZONEは、データベースのタイムゾーンの値を、協定世界時(UTC)に対するタイムゾーン・オフセットまたはタイムゾーンの地域名として返します。
他のタイムゾーン・オフセットを取得するには、TZ_OFFSETを使用します。
DECODEは、1つの式を1つ以上の検索文字列と1つずつ比較します。
exprがsearchの場合、DECODEは対応するresultを返します。一致しない場合、DECODEはdefaultを返します。defaultを省略した場合、DECODEはNULLを返します。
引数
exprは1つ以上の検索文字列と比較される式です。
searchはexprと一致するかどうか調べられる文字列です。
resultはexprが対応する検索文字列と一致した場合の戻り値です。
defaultはexprがどの検索文字列とも一致しない場合の戻り値です。defaultを省略すると、DECODEはNULLを返します。
引数としてすべての数値型または文字型を指定できます。2つのnullは等価です。exprがNULLの場合、DECODEは、最初のsearch(NULL)に対してresultを返します。
expr、searches、resultsおよびdefaultを含む構成要素の最大数は255です。
EXPは、eのn乗を返します(e = 2.71828183)。このファンクションは、引数と同じ型の値を戻します。
EXTRACTは、日時式または期間式から、指定したフィールドの値を返します。
FLOORは、指定した数値以下の最大の整数を返します。
FROM_TZは、タイムスタンプ値とタイムゾーンをTIMESTAMP WITH TIME ZONEデータ型に変換します。
GREATESTは、式のリストから最大の式を返します。最初の式より後の式はすべて、比較の前に最初の式のデータ型に暗黙的に変換されます。テキスト式は文字ごとに比較されます。
式のリストから最小の式を取得するには、LEASTを使用します。
HEXTORAWは、16進値をRAW値に変換します。
INITCAPは、指定したテキスト式の各語の先頭を大文字、それ以外を小文字として返します。語は空白か英字以外の文字で区切ります。戻り値のデータ型は元のテキストと同じです。
INSTR関数は、stringでsubstringを検索します。この関数は、string内の文字の位置を示す整数を返します。一致する部分がない場合は、0を返します。
INSTRは、入力キャラクタ・セットで定義される文字を使用して文字列を計算します。
INSTRBには、文字でなくバイトを使用します。
INSTRCは、完全なUnicodeキャラクタを使用します。
REGEXP_INSTRでは追加のオプションを使用できます。
LAST_DAYは、特定の日付が含まれる月の最後の日付を返します。
LEASTは、式のリストから最小の式を返します。最初の式より後の式はすべて、比較の前に最初の式のデータ型に暗黙的に変換されます。テキスト式は文字ごとに比較されます。
式のリストから最大の式を取得するにはGREATESTを使用します。
LENGTH関数は、テキスト式の長さを返します。
LENGTHは、文字数を数えます。
LENGTHBは、文字のかわりにバイトを使用します。
LENGTHCは、完全なUnicodeキャラクタを使用します。
LNは、0よりも大きな数の自然対数を返します。
LNNVLは、条件の1つまたは両方のオペランドがNULLの可能性がある場合に条件を評価します。LNNVLは、スカラー式を指定できる場所で使用できます。IS [NOT] NULL、ANDまたはOR条件が無効だが、潜在的なNULLに対応するために必要となるコンテキストでも、使用可能です。
注意: この関数は、条件が偽または不明の場合に1(true)を返し、条件が真の場合に0(false)を返します。
LOCALTIMESTAMPは、セッション・タイムゾーンでの現在の日付と時刻を返します。
LOGは、式の対数を計算します。
LOWERは、テキスト表現のすべてのアルファベット文字を小文字に変換します。戻り値のデータ型は元のテキストと同じです。
LPADは、指定された長さになるまで式の左に文字を追加します。戻り値のデータ型は元のテキストと同じです。
RPADを使用すると、右側に文字が追加されます。
LTRIMは、テキスト式を左から右にスキャンして、trim式の文字と一致するすべての文字を削除します。一致しない文字が出現した時点で停止します。戻り値のデータ型は元のテキストと同じです。
MODは、数値を割った余りを返します。除数が0の場合は、数値を返します。
MONTHS_BETWEENは、2つの日付の間の月数を計算します。2つの日付の日を示す構成要素が同じ場合、または両方の日付が月末の場合、戻り値は自然数です。この他の場合、戻り値に小数が含まれ、1か月を31日として日数の差が表されます。
NANVLは、値が数値かどうかを確認します。数値である場合、NANVLはその値を返します。数値でない場合は、別の値を返します。この関数は、バイナリdoubleまたはバイナリfloatのNaN値(数値ではない値)をゼロまたはNULLに変換する際に使用します。
NEW_TIMEは、あるタイムゾーンの日付と時刻を別のタイムゾーンの日付と時刻に変換します。この関数を使用する前に、NLS_DATE_FORMATパラメータを設定して24時間表示にしてください。
引数
date: 新しいタイムゾーンに変換する日時式です。
timezone1: dateのタイムゾーンです。
timezone2: 新しいタイムゾーンです。
タイムゾーン引数には、表3-2の値しか使用できません。他のタイムゾーンの場合は、FROM_TZを使用します。
NEXT_DAYは、指定した日付以降の、特定の曜日の最初の日付を返します。
NLS_CHARSET_IDは、指定されたキャラクタ・セット名に対応する識別番号を返します。
NLS_CHARSET_NAMEは、指定されたキャラクタ・セット番号に対応する名前を返します。
NLS_INITCAPは、大文字で始まり、小文字が続く単語の文字列を返します。単語は空白および英数字で区切られます。
NLS_LOWERは、テキスト表現のすべてのアルファベット文字を小文字に変換します。戻り値のデータ型は元のテキストと同じです。
NLS_UPPERは、テキスト表現のすべてのアルファベット文字を大文字に変換します。戻り値のデータ型は元のテキストと同じです。
NLSSORTは、テキスト文字列のソートに使用されるバイト文字列を返します。このファンクションを使用すると、文字列のバイナリ値ではなく言語ソート順に基づいてソートや比較の操作を指定できます。
注意: NLSSORTは、別の関数に渡すことのできるRAW値を返します。NLSSORTから返される値のメジャーまたは計算済メジャーを作成するには、RAWTOHEX関数を使用します。
言語ソートの詳細は、Oracle Databaseグローバリゼーション・サポート・ガイドを参照してください。
NULLIFは、2つの式を比較します。式が等しい場合はNULLを返し、等しくない場合は最初の式を返します。
NUMTODSINTERVALは、数値をINTERVAL DAY TO SECONDデータ型に変換します。
NUMTOYMINTERVALは、数値をINTERVAL YEAR TO MONTHデータ型に変換します。
NVLは、NULLを文字列で置換します。NVLは、基準の式がNULLの場合は置換文字列を返し、基準の式がNULLでない場合は基準の式の値を返します。
式がNULLの場合とそうでない場合に置換する値を変更するには、NVL2を使用します。
NVL2は、指定した式がNULLでない場合にある値を返し、指定した式がNULLの場合には別の値を返します。
NULL値を文字列で置換するにはNVLを使用します。
ORA_HASHは、式のハッシュ値を生成します。分析用に複数のバケットに値セットをランダムに割り当てる場合や、ランダムな数値セットを生成する場合に使用できます。
引数
expr: ハッシュ値を生成するためのデータを提供する任意の式です。
max_bucket: 最大バケット数です。たとえば、max_bucketが5に設定されている場合は、6つのバケットが作成され、ORA_HASHから0から5の値が返されます。この値は、0から4294967295または2^32-1 (デフォルト)に設定してください。
seed_value: ハッシュ値を生成するためにORA_HASHによって使用される値です。異なるseed_valueを入力すると、異なる結果を得られます。この値は、0 (デフォルト)から4294967295または2^32-1に設定してください。
例
ORA_HASH(PRODUCT_CUBE.PRICES, 5)は、ハッシュ5の列に示されているように、価格メジャーの各値に対して0から5の範囲の値を返します。ハッシュ5の列では、行のソートも行われています。
ORA_HASH(PRODUCT_CUBE.PRICES, 5, 13)でも0から5の範囲の値が返されますが、異なるシードが使用されています。
| 製品 | 価格 | ハッシュ5 | シード13 |
|---|---|---|---|
| ENVY STD | 200539.83 | 0 | 4 |
| ENVY EXE | 255029.31 | 0 | 5 |
| 1GB USB DRV | 44645.65 | 1 | 2 |
| DLX MOUSE | 1379.49 | 2 | 2 |
| 144MB DISK | 3011.43 | 2 | 5 |
| 512 USB DRV | 22139.99 | 2 | 2 |
| 19 SVGA | 34837.16 | 3 | 0 |
| 56KPS MODEM | 12478 | 3 | 2 |
| ENVY EXT KBD | 4312.22 | 3 | 5 |
| 17 SVGA | 22605.55 | 4 | 1 |
| EXT CD ROM | 17990.14 | 4 | 0 |
| ENVY ABM | 205462.25 | 5 | 1 |
POWERは、数値を累乗します。
RAWTOHEXは、RAWデータを、その16進数表現を含む文字値に変換します。
REGEXP_COUNTは、文字列内で正規表現パターンを検索し、そのパターンに一致する回数を返します。一致がない場合、この関数は0を返します。
このファンクションでは、入力キャラクタ・セットによって定義された文字を使用して文字列を評価します。
引数
source_charは検索範囲のテキスト式です。
patternは検索対象の文字列です。ピリオドは任意の文字に一致します。演算子のリストは、『Oracle Database SQL言語リファレンス』の付録DのOracle正規表現のサポートを参照してください。
positionはsource_char内で関数が検索を開始する文字を示す0以外の整数です。positionが負の場合、関数は文字列の最後から逆方向に数えて検索します。positionのデフォルト値の1では、関数がsource_charの最初の文字から検索を開始します。
match_parameterはテキスト・リテラルで、ファンクションが持つデフォルトの照合動作を変更できます。次の1つ以上の値を指定できます。
c: 照合で大文字と小文字を区別します。
i: 照合で大文字と小文字を区別しません。
m: ソース文字列を複数行とみなします。関数は、^および$をソース文字列全体の最初または最後としてだけではなく、ソース文字列における任意の行の、それぞれ最初および最後として解釈します。デフォルトでは、ソース文字列を単一行として処理します。
n: ピリオド(ワイルドカード文字)が一致する文字に改行文字を含めます。デフォルトでは含まれません。
x: 空白を無視します。
REGEXP_INSTRは、文字列内で正規表現パターンを検索します。一致する部分文字列の最初または最後の位置を示す整数を返します。一致する値が見つからない場合は0(ゼロ)を戻します。
このファンクションでは、入力キャラクタ・セットによって定義された文字を使用して文字列を評価します。
構文
REGEXP_INSTR (source_char, pattern
[, position
[, occurrence
[, return_option
[, match_parameter ]
]
]
]
)
引数
source_charは検索範囲のテキスト式です。
patternは検索対象の文字列です。ピリオドは任意の文字に一致します。演算子のリストは、『Oracle Database SQL言語リファレンス』の付録DのOracle正規表現のサポートを参照してください。
positionはsource_char内で関数が検索を開始する文字を示す0以外の整数です。positionが負の場合、関数は文字列の最後から逆方向に数えて検索します。positionのデフォルト値の1では、関数がsource_charの最初の文字から検索を開始します。
occurrenceは関数で検索するpatternの出現箇所を示す整数です。occurrenceの値は正であることが必要です。occurrenceのデフォルト値1では、関数がpatternの最初の出現箇所を検索します。
return_optionは一致した位置を返す場合は0 (デフォルト)、一致の直後の文字の位置を返す場合は1です。
match_parameterはテキスト・リテラルで、ファンクションが持つデフォルトの照合動作を変更できます。次の1つ以上の値を指定できます。
c: 照合で大文字と小文字を区別します。
i: 照合で大文字と小文字を区別しません。
m: ソース文字列を複数行とみなします。関数は、^および$をソース文字列全体の最初または最後としてだけではなく、ソース文字列における任意の行の、それぞれ最初および最後として解釈します。デフォルトでは、ソース文字列を単一行として処理します。
n: ピリオド(ワイルドカード文字)が一致する文字に改行文字を含めます。デフォルトでは含まれません。
x: 空白を無視します。
REGEXP_REPLACEは、文字列内で正規表現パターンを検索して、別の文字列で置換します。デフォルトでは、この関数は、正規表現パターンのすべての出現箇所をreplace_stringで置換してsource_charを返します。
構文
REGEXP_REPLACE(source_char, pattern
[, replace_string
[, position
[, occurrence
[, match_parameter ]
]
]
]
)
引数
source_charは検索範囲のテキスト式です。
patternは検索対象のテキスト式です。通常は、テキスト・リテラルであり、最大512バイトを含むことができます。演算子のリストは、『Oracle Database SQL言語リファレンス』の付録DのOracle正規表現のサポートを参照してください。
replace_stringはsource_charのpatternを置換するテキストです。
positionはsource_char内で関数が検索を開始する文字を示す0以外の整数です。positionが負の場合、関数は文字列の最後から逆方向に数えて検索します。positionのデフォルト値の1では、関数がsource_charの最初の文字から検索を開始します。
occurrenceは関数で検索するpatternの出現箇所を示す整数です。occurrenceの値は正であることが必要です。occurrenceのデフォルト値1では、関数がpatternの最初の出現箇所を検索します。
match_parameterはテキスト・リテラルで、ファンクションが持つデフォルトの照合動作を変更できます。次の1つ以上の値を指定できます。
c: 照合で大文字と小文字を区別します。
i: 照合で大文字と小文字を区別しません。
m: ソース文字列を複数行とみなします。関数は、^および$をソース文字列全体の最初または最後としてだけではなく、ソース文字列における任意の行の、それぞれ最初および最後として解釈します。デフォルトでは、ソース文字列を単一行として処理します。
n: ピリオド(ワイルドカード文字)が一致する文字に改行文字を含めます。デフォルトでは含まれません。
x: 空白を無視します。
REGEXP_SUBSTRは、文字列内でパターンを検索し、一致する文字列を返します。
引数
source_charは検索範囲のテキスト式です。
patternは検索対象のテキスト式です。通常は、テキスト・リテラルであり、最大512バイトを含むことができます。演算子のリストは、『Oracle Database SQL言語リファレンス』の付録DのOracle正規表現のサポートを参照してください。
positionはsource_char内で関数が検索を開始する文字を示す0以外の整数です。positionが負の場合、関数は文字列の最後から逆方向に数えて検索します。positionのデフォルト値の1では、関数がsource_charの最初の文字から検索を開始します。
occurrenceは関数で検索するpatternの出現箇所を示す整数です。occurrenceの値は正であることが必要です。occurrenceのデフォルト値1では、関数がpatternの最初の出現箇所を検索します。
match_parameterは関数のデフォルト照合動作を変更できるテキスト式です。次の1つ以上の値を指定できます。
c: 照合で大文字と小文字を区別します。
i: 照合で大文字と小文字を区別しません。
m: ソース文字列を複数行とみなします。関数は、^および$をソース文字列全体の最初または最後としてだけではなく、ソース文字列における任意の行の、それぞれ最初および最後として解釈します。デフォルトでは、ソース文字列を単一行として処理します。
n: ピリオド(ワイルドカード文字)が一致する文字に改行文字を含めます。デフォルトでは含まれません。
x: 空白を無視します。
REMAINDERは、ある数を別の数で割った剰余を、次の式を使用して丸めて返します。
n2 - (n1 * N)
このとき、Nはn2/n1に最も近い整数です。
REPLACEは、文字列内で正規表現パターンを検索し、パターンを別の文字列で置換し、変更された文字列を返します。
ROUNDは、日付フォーマットで指定した単位で四捨五入した日付を返します。
ROUNDは、指定の小数点以下の桁数で四捨五入した数値を返します。
ROWIDTOCHARは、行アドレスをROWIDデータ型からテキストに変換します。戻り値は、常にデータベース・キャラクタ・セットの18文字です。
ROWIDTONCHARは、行アドレスをROWIDデータ型からテキストに変換します。戻り値は、常に各国語キャラクタ・セットの18文字です。
RPADは、指定した長さになるまで式の右に文字を追加します。戻り値のデータ型は元のテキストと同じです。
LPADを使用すると、左側に文字が追加されます。
RTRIMは、テキスト式を右から左にスキャンして、trim式の文字と一致するすべての文字を削除します。一致しない文字が出現した時点で停止します。戻り値のデータ型は元のテキストと同じです。
SESSIONTIMEZONEは、現行セッションのタイムゾーンを返します。戻り値の型は、協定世界時(UTC)に対するタイムゾーン・オフセットまたはタイムゾーンの地域名です。
SIGNは、指定した数値が、負、0または正のいずれかを示す値を返します。
n < 0の場合は-1
n = 0の場合は0
n > 0の場合は1
SINは、角度の正弦を返します。
SOUNDEXは、テキスト式の音声表現を含む文字列を返します。この関数では、異なるスペルで発音が似ている語句を比較できます。
この関数は、Donald KnuthのThe Art of Computer Programmingに記述されているアルゴリズムに基づいています。このアルゴリズムは英語用に設計されています。英語以外の言語での結果は予測できず、不十分な場合が多いです。
SUBSTRは、文字列の、指定した文字位置から指定した文字数までの部分を返します。
SUBSTRは、入力キャラクタ・セットによって定義された文字を使用して、長さを計算します。
SUBSTRBには、文字でなくバイトを使用します。
SUBSTRCは、完全なUnicodeキャラクタを使用します。
SYS_CONTEXTは、名前付きコンテキストの属性の値を返します。コンテキスト、属性および値は、データベースですでに定義されている必要があります。コンテキストが定義されていない場合、SYS_CONTEXTはNULLを返します。
引数
namespaceは、データベース内の任意の名前付きコンテキストにすることができます。USERENVは、現在のセッションを説明する組込みコンテキストです。
parameterは namespaceの定義済属性です。表3-3で、値を持つ可能性が最も高いUSERENVの事前定義済属性について説明します。完全なリストについては、『Oracle Database SQL言語リファレンス』のSYS_CONTEXTに関する項を参照してください。
表3-3 USERENV属性
| USERENV属性 | 説明 |
|---|---|
|
|
データベース・ユーザー名、スキーマ名、オペレーティング・システム・ログイン名など、認証に使用される識別情報。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
データベースのData Guardロール( |
|
|
|
|
|
|
|
|
|
|
|
ユーザーの企業全体での識別子(ローカル・ユーザーの場合は |
|
|
現在のセッションがクライアントのフォアグラウンド・プロセスで開かれた場合は、そのセッションのジョブ識別子。それ以外の場合は |
|
|
グローバルにアクセスされるコンテキストによってシステム・グローバル領域で使用される数値。 |
|
|
Oracle Internet Directory for Enterprise User Securityログインのグローバル・ユーザーID、または |
|
|
クライアント・ホスト・コンピュータの名前。 |
|
|
データベースでユーザー・スキーマが作成された方法( |
|
|
|
|
|
データベース・インスタンスの名前。 |
|
|
|
|
|
ユーザーがDBA権限で認証された場合は |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
データベース・セッションを開始したクライアント・プロセスのオペレーティングシステム・ユーザー名。 |
|
|
データベース・インスタンスが実行しているコンピュータのホスト名。 |
|
|
|
|
|
|
|
|
|
|
|
|
SYSDATEは、データベースがあるオペレーティング・システムの現在の日付と時刻を返します。値のフォーマットは、NLS_DATE_FORMAT初期化パラメータによって異なります。
SYSTIMESTAMPは、データベースが存在するシステムの、秒の小数部とタイムゾーンを含む日付を戻します。
TANは、角度の正接を返します。
TO_BINARY_DOUBLEは、テキストまたは数値式を倍精度浮動小数点数に変換します。
引数
n: 任意のテキストまたは数値式です。
fmtは数値フォーマット・モデルを指定するテキスト式です。Oracle Database SQLリファレンスを参照してください。
nlsparam: 次の数値フォーマット要素で使用される文字を指定します。
小数点文字
グループ・セパレータ
各国通貨記号
国際通貨記号
この引数のフォーマットを次に示します。
'NLS_NUMERIC_CHARACTERS = ''dg'' NLS_CURRENCY = ''text'' NLS_ISO_CURRENCY = territory '
dは小数点文字、gはグループ・セパレータです。これらは、異なるシングルバイト文字である必要があります。引用した文字列内では、2つの一重引用符でパラメータ値を囲んでください。通貨記号には10文字使用できます。
この引数またはNLSパラメータのいずれかを省略すると、この関数はexprを解釈するためにセッションのデフォルト値を使用します。
TO_BINARY_FLOATは、テキストまたは数値式を単精度浮動小数点数に変換します。
引数
n: 任意のテキストまたは数値式です。
fmtは数値フォーマット・モデルを指定するテキスト式です。Oracle Database SQLリファレンスを参照してください。
nlsparam: 次の数値フォーマット要素で使用される文字を指定します。
小数点文字
グループ・セパレータ
各国通貨記号
国際通貨記号
この引数のフォーマットを次に示します。
'NLS_NUMERIC_CHARACTERS = ''dg'' NLS_CURRENCY = ''text'' NLS_ISO_CURRENCY = territory '
dは小数点文字、gはグループ・セパレータです。これらは、異なるシングルバイト文字である必要があります。引用した文字列内では、2つの一重引用符でパラメータ値を囲んでください。通貨記号には10文字使用できます。
この引数またはNLSパラメータのいずれかを省略すると、この関数はexprを解釈するためにセッションのデフォルト値を使用します。
TO_CHAR (文字)は、テキスト式をデータベース・キャラクタ・セットに変換します。
TO_CHAR (日時)は、日時式または期間式を、指定したフォーマットのテキスト文字列に変換します。
引数
datetime: テキストに変換する日時式です。
interval: テキストに変換する期間式です。
fmtはcharのフォーマットを指定するdatetimeモデル・フォーマットです。デフォルトの日付フォーマットは、NLS_TERRITORY初期化パラメータによって暗黙的に決まります。NLS_DATE_FORMATパラメータを使用して明示的に設定することもできます。データ型フォーマットの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
nlsparam: 月と日の名前や略称を返すときに使用する言語を指定します。この引数は次のような形式で指定できます。
'NLS_DATE_LANGUAGE = language'
デフォルトでは、戻り値はセッションの日付言語になります。
TO_CHAR (数値)は、数値式をデータベース・キャラクタ・セットのテキスト値に変換します。
引数
n: 変換する数値式です。
fmtは数値フォーマット・モデルを指定するテキスト式です。Oracle Database SQLリファレンスを参照してください。
nlsparam: 返される文字のフォーマットを指定します。次の数値フォーマット要素を使用します。
小数点文字
グループ・セパレータ
各国通貨記号
国際通貨記号
この引数のフォーマットを次に示します。
'NLS_NUMERIC_CHARACTERS = ''dg'' NLS_CURRENCY = ''text'' NLS_ISO_CURRENCY = territory '
文字dは小数点文字、gは、グループ・セパレータを表します。これらは、異なるシングルバイト文字である必要があります。引用した文字列内では、2つの一重引用符でパラメータ値を囲んでください。通貨記号には10文字使用できます。
この引数またはNLSパラメータのいずれかを省略すると、この関数はセッションのデフォルト値を使用します。
TO_DATEは、テキスト式をDATEデータ型に変換します。
引数
char: 日付を表すテキスト式です。
fmtはcharのフォーマットを指定するdatetimeモデル・フォーマットです。デフォルトの日付フォーマットは、NLS_TERRITORY初期化パラメータによって暗黙的に決まります。NLS_DATE_FORMATパラメータを使用して明示的に設定することもできます。データ型フォーマットの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
nlsparam: charの言語を指定します。この引数は次のような形式で指定できます。
'NLS_DATE_LANGUAGE = language'
デフォルトでは、charはセッション日付言語になります。
TO_DSINTERVALは、テキスト式をINTERVAL DAY TO SECONDデータ型に変換します。
TO_NCHAR (文字)は、文字列を各国語キャラクタ・セットに変換します。
TO_NCHAR (日時)は、日時または間隔の値を各国語キャラクタ・セットに変換します。
引数
datetime: テキストに変換する日時式です。
interval: テキストに変換する期間式です。
fmtはcharのフォーマットを指定するdatetimeモデル・フォーマットです。デフォルトの日付フォーマットは、NLS_TERRITORY初期化パラメータによって暗黙的に決まります。NLS_DATE_FORMATパラメータを使用して明示的に設定することもできます。データ型フォーマットの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
nlsparam: 月と日の名前や略称を返すときに使用する言語を指定します。この引数は次のような形式で指定できます。
'NLS_DATE_LANGUAGE = language'
デフォルトでは、戻り値はセッションの日付言語になります。
TO_NCHAR (数値)は、数値を各国語キャラクタ・セットに変換します。
引数
n: 変換する数値式です。
fmtは数値フォーマット・モデルを指定するテキスト式です。Oracle Database SQLリファレンスを参照してください。
nlsparam: 返される文字のフォーマットを指定するテキスト式です。次の数値フォーマット要素を使用します。
小数点文字
グループ・セパレータ
各国通貨記号
国際通貨記号
この引数のフォーマットを次に示します。
'NLS_NUMERIC_CHARACTERS = ''dg'' NLS_CURRENCY = ''text'' NLS_ISO_CURRENCY = territory '
文字dは小数点文字、gは、グループ・セパレータを表します。これらは、異なるシングルバイト文字である必要があります。引用した文字列内では、2つの一重引用符でパラメータ値を囲んでください。通貨記号には10文字使用できます。
この引数またはNLSパラメータのいずれかを省略すると、この関数はセッションのデフォルト値を使用します。
TO_NUMBERは、数字を含むテキスト式をNUMBERデータ型の値に変換します。
引数
expr: 数値に変換する式です。
fmtは数値フォーマット・モデルを指定するテキスト式です。Oracle Database SQLリファレンスを参照してください。
nlsparam: 次の数値フォーマット要素で使用される文字を指定します。
小数点文字
グループ・セパレータ
各国通貨記号
国際通貨記号
この引数のフォーマットを次に示します。
'NLS_NUMERIC_CHARACTERS = ''dg'' NLS_CURRENCY = ''text'' NLS_ISO_CURRENCY = territory '
dは小数点文字、gはグループ・セパレータです。これらは、異なるシングルバイト文字である必要があります。引用した文字列内では、2つの一重引用符でパラメータ値を囲んでください。通貨記号には10文字使用できます。
この引数またはNLSパラメータのいずれかを省略すると、この関数はexprを解釈するためにセッションのデフォルト値を使用します。
TO_TIMESTAMPは、テキスト式をTIMESTAMPの値に変換します。
引数
char: 変換するテキスト式です。
fmtはcharのフォーマットを指定するdatetimeモデル・フォーマットです。デフォルトの日付フォーマットは、NLS_TERRITORY初期化パラメータによって暗黙的に決まります。NLS_DATE_FORMATパラメータを使用して明示的に設定することもできます。データ型フォーマットの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
nlsparam: 月と日の名前やcharで与えられた略称に使用される言語を指定します。引数の形式は次のとおりです。
'NLS_DATE_LANGUAGE = language'
デフォルトでは、charはセッション日付言語になります。
TO_TIMESTAMP_TZは、テキスト式をTIMESTAMP WITH TIME ZONEデータ型の値に変換します。
引数
char: 変換するテキスト式です。
fmtはcharのフォーマットを指定するdatetimeモデル・フォーマットです。デフォルトの日付フォーマットは、NLS_TERRITORY初期化パラメータによって暗黙的に決まります。NLS_DATE_FORMATパラメータを使用して明示的に設定することもできます。データ型フォーマットの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
nlsparam: 月と日の名前やcharで与えられた略称に使用される言語を指定します。引数の形式は次のとおりです。
'NLS_DATE_LANGUAGE = language'
デフォルトでは、charはセッション日付言語になります。
TO_YMINTERVALは、テキスト式をINTERVAL YEAR TO MONTHデータ型に変換します。関数は、次の2つの形式のいずれかの引数を受け入れます。
SQL規格(ISO/IEC 9075:2003)に準拠したSQL期間書式(ISO/IEC 9075:2003)
ISO 8601:2004規格に準拠したISO存続期間書式
構文
TO_YMINTERVAL ( ' { sql_format | ym_iso_format } ' ) sql_format::= [+|-] years - months ym_iso_format::= [-] P [ years Y ] [months M ] [days D ] [ T [hours H ] [minutes M ] [seconds [. frac_secs] S ] ]
引数
SQL形式:
yearsは0から999999999までの整数です。
monthsは0から11までの整数です。
これ以外に、書式要素の間に空白を使用できます。
ISO形式:
yearsとmonthsは、0から999999999までの整数です。
days、hours、minutes、secondsおよびfrac_secsは負以外の整数であり、無視されます。
値には空白を使用できません。
例
TO_YMINTERVAL('1-6')およびTO_YMINTERVAL('P1Y6M')は、1年と6か月を意味する値+01-06を返します。
SYSDATE + TO_YMINTERVAL('1-6')は、現在の日付に1年6か月を加算します。SYSDATEが15-APR-08の場合、値は15-OCT-09です。
SYSDATE + TO_YMINTERVAL('P1Y6M')は、ISO形式を使用して現在の日付に1年6か月を加算します。SYSDATEが15-APR-08の場合、値は15-OCT-09です。
SYSDATE + TO_YMINTERVAL('-1-2')は、現在の日付から1年2か月を減算します。SYSDATEが15-APR-08の場合、値は15-FEB-07です。
TRANSLATEは、1回の操作で複数の文字を1対1で置き換えることができます。この式は、最初の文字列の各文字のすべての出現箇所を、2番目の文字列の対応する文字で置換した式を返します。
TRANSLATEは、データベース・キャラクタ・セットと各国語キャラクタ・セット間でテキスト文字列を変換します。
注意: TRANSLATE USING関数は、主にANSIとの互換性を保つためにサポートされています。データをデータベースまたは各国語キャラクタ・セットに変換するには、TO_CHARおよびTO_NCHAR関数を使用することをお薦めします。TO_CHARおよびTO_NCHARは、文字データのみ受け入れるTRANSLATE USINGよりも多様なデータ型を引数として受け取ることができます。
TRIMは、文字列の先頭または末尾(あるいは両方)から文字を削除します。
TRUNCは、数値式の小数点以下を指定した桁数に切り捨てます。
TZ_OFFSETは、標準世界時(UTC)に対するタイムゾーン・オフセットを返します。
UNISTRは、テキスト文字列を各国語キャラクタ・セットに変換します。
UPPERは、テキスト表現のすべてのアルファベット文字を大文字に変換します。戻り値のデータ型は元のテキストと同じです。
VSIZEは、式の内部表現のバイト数を返します。NULL式の場合はNULLを返します。
WIDTH_BUCKETを使用すると、均等なサイズの間隔に分割されたヒストグラム範囲を作成できます。この関数は、式の値が含まれるバケット番号を返します。
必要であれば、WIDTH_BUCKETは、番号0のアンダーフロー・バケットと、番号num_buckets+1のオーバーフロー・バケットを作成します。このようなバケットは指定範囲外の値を処理し、端点の合理性をチェックするときに役立ちます。