ORACLE関数

[ORACLE関数] バイト数単位で文字を切り出す(SUBSTRB)

投稿日:2017年3月16日 更新日:

オラクルで文字列からバイト数単位で文字を切り出すには、
SUBSTRB関数を使用します。

構文

構文は以下の通りです。

SUBSTRB(<対象文字列>, <開始バイト位置>, <終了バイト位置>)

終了バイト位置は省略可です。

サンプルソース

以下のようなテーブルをサンプルとします。

【tbl1】
CDNAME
001ABCDEFGHIJ
002あいうえおかきくけこ
003あAいBうCえDおE

文字コードは全角=2バイトとします。


例)1バイト目から5バイト取得する

【結果】
ABCDE あい あAい

例)3バイト目から5バイト取得する

【結果】
CDEFG いう AいB

例)3バイト目から文字列の末尾まで取得する

【結果】
CDEFGHIJ いうえおかきくけこ AいBうCえDおE

メモ

  • 使用している文字コードがUnicodeなどの場合は結果は異なります。 (Unicodeは1文字が3バイトで表されるため)
  • 切り出した部分が全角文字の途中となる場合、その文字は切り出されません。
  • 文字数単位で文字を切り出したい場合は、SUBSTR関数を使用します。 ※詳しくは、「文字数単位で文字を切り出す」をご覧ください。

スポンサーリンク

スポンサーリンク

-ORACLE関数
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

ORACLE

[ORACLE関数] 非数値を別の数値に置き換える(NANVL)

非数値(NaN)を別の数値に置き換えるには、NANVL関数を使用します。 構文 (NANVL構文) NANVL(<対象値 ...
ORACLE

[ORACLE関数] 検索条件に正規表現を使う(REGEXP_LIKE)

検索条件に正規表現を使ったサンプルです。 サンプル 例)user_cdにB、Eが含まれるものを検索する [crayon- ...
ORACLE

[ORACLE関数] 文字をASCIIコードに変換する(ASCII)

文字をASCIIコードに変換するには、ASCII関数を使用します。 構文 (ASCII関数構文) ASCII(文字) サ ...
ORACLE

[ORACLE] 値が同じならNULLを返す(NULLIF)

値が同じならNULLを返すには、NULLIF関数を使用します。 サンプル 例)値が同じ場合 SQL*Plus SQL&g ...
ORACLE

[ORACLE関数] 順位を飛ばさずに順位を付ける(DENSE_RANK~OVER)

順位を飛ばさずに順位を付けるには、DENSE_RANK~OVER関数を使用します。 順位を飛ばさずにとは、同順位のデータ ...

スポンサーリンク