タグ

ブックマーク / www.shift-the-oracle.com (12)

  • CONVERT - オラクル・Oracle SQL 関数リファレンス

    CONVERT 関数の内容 変換する対象の文字列 string を 変換前の キャラクタセット source_charset から 変換後のキャラクタセット dest_charset に変更した文字列を戻す。 CONVERT 関数の追加説明と注意事項 変換文字に対応するコードポイントが存在しない場合にはクエスチョンマーク(クエッションマーク)(?) に変換される。 変換する対象の文字列 string にはラージオブジェクトも利用することが可能。 利用できる型は CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB、NCLOB の6つで LONG には使用できない。 注意 UTL_I18N パッケージの STRING_TO_RAW ファンクションは変換結果を RAW 型に代入するが CONVERT 関数は VARCHAR2 型として戻す。 文字化けする状態の VARCHAR2

  • NVL、COALESCE - オラクル・Oracle SQL 関数リファレンス

    NVL 関数の内容 式 expr1 が NULL なら expr2 の値を戻す。Null Value Logic の略 COALESCE 関数の内容 、 NVL 関数を一般化した関数で引数に含まれる最初の 「非 NULL値」 を戻す。 COALESCE( expr1,…, exprN ) のように可変長の引数をもつ。 ⇒ コアレス:空き領域を連結してより大きな空き領域に変換 COALESCE 関数の追加説明と注意事項 COALESCE 関数の引数の数 (N) が 1 の場合にはエラーを戻す。 N = 2 の場合 … NVL(expr1, expr2) と同じ N > 2 の場合 … CASE WHEN expr1 IS NOT NULL then COALESCE( expr2,..., exprN) end と自己参照した内容と同じになる。 ちなみに NVL( expr1, NVL( e

  • NVL2、NULLIF - オラクル・Oracle SQL 関数リファレンス

    NVL2、NULLIF Top | Knowledge| DB構築| 文字列関数| 日付関数| 集計関数| SQL関数(アルファベット順) SQL(抽出・更新)| SQL*Plus| PL/SQL| Utility| Structure| スキーマ| チューニング| 用語| 参考書

  • INSTR、INSTRB - オラクル・Oracle SQL 関数リファレンス

    INSTR、INSTRB 関数の内容 文字列 string 中の 検索文字列 substring を検索し、その検索文字列が現れた 文字、または、バイトの位置を示す正数を戻す (1 オリジン) 開始位置 position、検知回数 occurrence のデフォルトはともに 1 開始位置 position にマイナス値を指定すると 文末から文頭 に向けて検索する。マイナスを指定しても戻り値の出現位置は先頭からの正数となる。 INSTR、INSTRB 以外にも各国語キャラクタセットに使用する特定のコードポイント向けの関数がある。 INSTRC : 完全な Unicode 用 INSTR2 : UCS2 用 INSTR4 : UCS4 用 注意点 INSTR、INSTRB の 検索対象文字列の検索開始位置 position は 開始位置を 0 に指定してもエラーにならないが SUBSTR の

  • LISTAGG(集計関数) - オラクル・Oracle SQL 関数リファレンス

    全員の name を並び順を気にせずに連結する。 WITHIN GROUP は省略できないので意味のない 「order by null」 を指定してみた。数値を指定してもカラムの第 N 番目でソートというわけでない。 Oracle 11g R2 時点では実行計画に SORT GROUP BY があり、暗黙的に expr 昇順にソートされている。 SQL> select LISTAGG(name) WITHIN GROUP (order by null) concat_name 2    from listagg_sample; CONCAT_NAME -------------------------------------------------- あおきこばやしさとうすずきたかはしやまもと 部門毎に名前をカンマ区切りで連結する。名前の並び順は給料の高い順 SQL> select dep

  • TO_CHAR(日付) - オラクル・Oracle SQL 関数リファレンス

    日付のフォーマット使用例 DATE 型のデフォルトの書式は NLS_DATE_FORMAT でフォーマットされる。TIMESTAMP 型は NLS_TIMESTAMP_FORMAT。タイムゾーン付きの場合には NLS_TIMESTAMP_TZ_FORMAT によってフォーマットされる。 TO_CHAR( DATE '2005-06-07', 'RRMMDD') ⇒ '050607' 日付と時刻のフォーマット使用例 TO_CHAR ( TIMESTAMP '2000-01-02 04:05:06', 'YYYY/MM/DD HH24:MI:SS DAY') ⇒ 2000/01/02 04:05:06 日曜日 日付に関する豆知識 曜日を求める TO_CHAR 関数で曜日を取得することも可能(和名、または、英名) 曜日を取得するには 書式指定に 'DAY' を指定する。 日の曜日はすべて同じ長

  • SUBSTR、SUBSTRB - オラクル・Oracle SQL 関数リファレンス

    SUBSTR、SUBSTRB 関数の内容 SUBSTR は取り出す文字列をキャラクタ単位、 SUBSTRB はバイト単位で部分文字列の取り出しを行なう。 文字列 string の 開始位置 position から legnth 文字、または、バイト分 の部分文字列 (SUBSTRING) を戻す。 開始位置 position は 1 オリジンで始まるが 0 でも有効で 1 を指定したことになる。また、開始位置 position にマイナス値を指定すると文末から position 逆行した位置から文字列を取り出す。 文字列長 length を省略すると文字の最後までが対象となり、0 以下の数値も指定できるが結果は常に NULL を戻す。 BASIC にあるような左から length 文字 (left) 、右から length 文字 (right) のような個別の関数は用意されていない。 SU

  • CHAR と VARCHAR2 の違い - オラクル・Oracleをマスターするための基本と仕組み

    この比較は RTRIM('abc') 比較条件 RTRIM('abc______') のようにも見えるが実際は反対?でちょっと違う。 名前の通りスペースを PADDING した(満たした※) 後に比較する。短い方の文字列が長い方の文字列と同じ長さになるまでスペースが充填される。TRIM より PADDING をエミュレーションする方がメモリ使用量が少なくて速いのかも。 つまり「空白埋め」とは TRIM (FM 書式修飾子の FILL) ではなく PADDING であるということ。 vLength := GREATEST(length('abc'), length('abc______')); RPAD('abc', vLength ) 比較条件 RPAD('abc______', vLength) というイメージ 参考: RTRIM 関数、RPAD 関数、NLS_COMP 初期化パラメータ

  • 引用符と引用識別子 - オラクル・Oracleをマスターするための基本と仕組み

    引用符 単一引用符(シングルクォート)と二重引用符(ダブルクォート) 多くの開発言語では単一引用符(') と二重引用符(") は以下の例のように相互に置き換え可能である。 vData = "文字列" vData = '文字列' しかし Oracle において二重引用符(") は リテラル をクォートするための文字ではなく、引用識別子をあらわす引用符である。 以下の代入文はエラーとなる。 vData := "無効な識別子となる文字列"; vData := ""; ORA-01741: 長さゼロの識別子は無効です。になるのが望ましいと思うが再帰SQLエラーになる。 関連事項 ⇒ リテラル内での単一引用符の表現方法:代替引用符 引用識別子と非引用識別子 二重引用符(") は引用識別子をあらわすために使用する。 通常の利用では、ほとんどが二重引用符(") でクォートされない(囲まれていない)非引用

    kathew
    kathew 2016/11/09
    や、ややこしい‥‥。例を見て具体的な意味はわかった
  • SELECT 文の活用 (GROUP BY) - オラクル・Oracle SQL 入門

    グループ化の適用範囲 グルーピング処理は以下のような例題についての解答になる。 部門別に利用者は何人いるか? 部門別に平均在職期間はどれくらいか? 在職期間の平均が XX になる部門はどこか? など グループ化とは グループ化とは、SELECT 文 で 抽出したデータ(※1)を指定したキーワードで分類(※2) する。 その結果セットを 指定したキーワード、または、集計ファンクション を使用して取り出すこと意味する。 (※1) 抽出したデータ= WHERE 句で対象のデータを条件付けること。 (※2) 指定したキーワードで分類= GROUP BY 句 抽出結果のグルーピング。 部門でグループ化 サンプルデータを グループ化してみる。 SELECT DEPT_NO FROM USER_MASTER2 GROUP BY DEPT_NO グループ化のイメージ(作業前)

  • SQL 関数一覧 (A‐D) - オラクル・Oracle SQL 関数リファレンス

    適用の★マークについて マニュアル上では PL/SQL でも使えそうでいて組み込まれていない関数がいくつかあるようです。 ★:PL/SQL において使用できないという明記がなく PL/SQL に組み込まれていない関数 、または、SQL でのみ完全な?関数(※) (※) Oracle 10g R2 において、例えば CAST は PL/SQL でも実行できるが PL/SQL に組み込み済みの一覧にないためサポート外かもしれない(機能の一部のみ有効) PL/SQL のマニュアル上では オブジェクト参照ファンクションDEREF、REF および VALUE とファンクション DECODE、DUMP およびVSIZE 以外であれば、 すべてのファンクションをプロシージャ文で使用できます。 ということになっている

  • SELECT 文の活用(NULL 検索) - オラクル・Oracle SQL 入門

    NULL 値の検索 IS NULL 比較演算子 NULL 値は WHERE colname = NULL のような条件では NULL のレコードを抽出することはできない。

  • 1