SQL関数の備忘録
現在、再構成中のため内容が乱れる可能性があります。
組み込み関数は、大きく 5 つに分類されている。
- 単一行ファンクション( Single-Row Function ) / スカラーファンクション
- 単一行を操作し、1行に対し1つの結果を戻す。... LENGTH('ABC') = 文字列の長さ
以前のマニュアルではスカラーファンクションとも書かれていたが、廃語になったのかもしれない。英語マニュアル上もスカラー型とスカラー副問い合わせなどしかない。
- 集計ファンクション ( Aggregate Function )
- (グループ化した)複数行を操作し、そのグループ行に対し1つの結果を戻す。... MIN(sales) = 最小の値
- 分析ファンクション ( Analytic Function )
- 集計ファンクションと同様、複数行を操作するが複数行の結果を戻す。
- オブジェクト参照ファンクション ( Object Reference Functions )
- オブジェクトタイプへのアクセスファンクション
- モデルファンクション ( Model Function )
- 行間計算を行うファンクション、結果レコードをセル単位に操作することができ、複数行の結果を戻す。
単一行ファンクション
- 文字ファンクション(変換、文字長、辞書ソート、検索、置換、整形、フォーマット)
入力に数値や文字などを受け取り、文字型の値を戻す。CHAR、VARCHAR(2)※、CLOBなど
一部のファンクションは数値を戻す。(LENGTH=文字列長など)
※ 文字列のCHARの値の長さは2KB、VARCHAR2の値の長さは4KBが上限
文字列ファンクションの戻り値が上限サイズを超えてもエラーにならない。(超過部分は切り捨て)
CLOB型の場合には、Oracleエラーとなり値は戻されない。(最大長はブロックサイズ依存)
- 日付ファンクション(日付の差、切捨て、丸め、システム日付)
DATE、TIMESTAMP、期間データ型などの値を操作し、日付または期間の数値を戻す。
(要注意)
一部の関数はTIMESTAMP型の入力をDATE型に丸めるので秒の小数部がなくなる。
ADD_MONTHS、CURRENT_DATE、LAST_DAY、NEW_TIME および NEXT_DAY
集計ファンクション
SQL における制限事項
Oracle 性能限界(SQL)