すべてのプロダクト
Search
ドキュメントセンター

PolarDB:変換関数

最終更新日:Mar 28, 2026

PolarDB for Oracle は、Oracle SQL 構文と互換性のある以下の変換関数をサポートします。

TO_YMINTERVAL

文字列を INTERVAL YEAR TO MONTH 値に変換します。

構文

TO_YMINTERVAL(char)

パラメーター

パラメーター説明
char変換対象の文字列です。許容されるデータの型:CHARVARCHAR2NCHARNVARCHAR2

戻り値

INTERVAL YEAR TO MONTH

SQL 間隔フォーマット(SQL 標準と互換):

SELECT to_yminterval('2016-1') FROM DUAL;

出力:

 to_yminterval
---------------
 +2016-01

TO_DSINTERVAL

文字列を INTERVAL DAY TO SECOND 値に変換します。

構文

TO_DSINTERVAL(char[, nlsparam])

パラメーター

パラメーター説明
char変換対象の文字列です。許容されるデータの型:CHARVARCHAR2NCHARNVARCHAR2
nlsparam省略可能です。NLS_NUMERIC_CHARACTERSNLS_NUMERIC_CHARACTERS="dg" の形式で指定します。ここで、d は小数点文字、g はグループデリミタです。いずれの文字もスペースにはできません。

戻り値

INTERVAL DAY TO SECOND

SQL 間隔フォーマット(SQL 標準と互換):

SELECT to_dsinterval('1 1:1:00') FROM DUAL;

出力:

 to_dsinterval
---------------
 +01 01:01:00

TO_TIMESTAMP_TZ

文字列を TIMESTAMP WITH TIME ZONE 値に変換します。

構文

TO_TIMESTAMP_TZ(char[, fmt][, 'nlsparam'])

パラメーター

パラメーター説明
char変換対象の文字列です。許容されるデータの型:CHARVARCHAR2NCHARNVARCHAR2
fmt戻り値となる TIMESTAMP WITH TIME ZONE 値のフォーマットです。
nlsparam省略可能です。出力における月名および曜日の言語を指定します。

戻り値

TIMESTAMP WITH TIME ZONE

NUMTODSINTERVAL

数値を INTERVAL DAY TO SECOND 値に変換します。

interval_unit は大文字・小文字を区別しません。値の前後の丸括弧 () は無視されます。戻り値のデフォルト精度は 9 です。

構文

NUMTODSINTERVAL(n, interval_unit)

パラメーター

パラメーター説明
nNUMBER 値、または暗黙的に NUMBER に変換される式です。
interval_unitn の単位です。許容されるデータの型:CHARVARCHAR2NCHARNVARCHAR2。有効な値:DAYHOURMINUTESECOND

戻り値

INTERVAL DAY TO SECOND

基本的な変換:

SELECT numtodsinterval('3.123456789', 'hour') FROM DUAL;

出力:

   numtodsinterval
--------------------
 +00 03:07:24.44444

NUMTOYMINTERVAL

数値を INTERVAL YEAR TO MONTH 値に変換します。

interval_unit は大文字・小文字を区別しません。値の前後の丸括弧 () は無視されます。戻り値のデフォルト精度は 9 です。

構文

NUMTOYMINTERVAL(n, interval_unit)

パラメーター

パラメーター説明
nNUMBER 値、または暗黙的に NUMBER に変換される式です。
interval_unitn の単位です。許容されるデータの型:CHARVARCHAR2NCHARNVARCHAR2。有効な値:YEARMONTH

戻り値

INTERVAL YEAR TO MONTH

SELECT numtoyminterval('3.123456789', 'year') FROM DUAL;

出力:

 numtoyminterval
-----------------
 +03-01

UNISTR

文字列または式を国別文字セットの値に変換します。国別文字セットは、AL16、UTF16、または UTF8 エンコード形式をサポートします。

Unicode コードポイントは \xxxx 形式で指定します。ここで、xxxx は UCS-2 エンコーディングの 16 進数値です。基本多言語面外の補助文字はサロゲートペアを使用します。上位サロゲートは U+D800 から U+DBFF、下位サロゲートは U+DC00 から U+DFFF の範囲です。リテラルのバックスラッシュを含めるには、\\ を使用します。

構文

UNISTR(string)

パラメーター

パラメーター説明
string変換対象の文字列です。

戻り値

STRING

SELECT UNISTR('abc\00e5\00f1\00f6') FROM DUAL;

出力:

 unistr
--------
 abcåñö

関連関数: ASCIISTR は文字列を ASCII に変換し、非 ASCII 文字を \xxxx エスケープシーケンスに置き換えます。

TO_SINGLE_BYTE

マルチバイト文字をそのシングルバイト相当の文字に変換します。

シングルバイト相当の文字を持たないマルチバイト文字は、出力でもマルチバイト文字のまま残ります。この関数は、データベース文字セットにシングルバイト文字とマルチバイト文字の両方が含まれている場合にのみ機能します。

CLOB 値は直接サポートされませんが、暗黙的なデータの型変換を介して渡すことができます。

構文

TO_SINGLE_BYTE(char)

パラメーター

パラメーター説明
char変換対象の値です。許容されるデータの型:CHARVARCHAR2NCHARNVARCHAR2

戻り値

入力 char と同じデータの型です。

SELECT to_single_byte('123$test') FROM DUAL;

出力:

 to_single_byte
----------------
 123$test

TO_MULTI_BYTE

シングルバイト文字をそのマルチバイト相当の文字に変換します。

マルチバイト相当の文字を持たないシングルバイト文字は、出力でもシングルバイト文字のまま残ります。この関数は、データベース文字セットにシングルバイト文字とマルチバイト文字の両方が含まれている場合にのみ機能します。

CLOB 値は直接サポートされませんが、暗黙的なデータの型変換を介して渡すことができます。

構文

TO_MULTI_BYTE(char)

パラメーター

パラメーター説明
char変換対象の値です。許容されるデータの型:CHARVARCHAR2NCHARNVARCHAR2

戻り値

入力 char と同じデータの型です。

SELECT to_multi_byte('Hello'::text) FROM DUAL;

出力:

 to_multi_byte
---------------
 Hello

TO_CLOB

NCLOB 列または文字列を CLOB 値に変換します。

PL/SQL パッケージでは、TO_CLOB 関数を使用して、次のデータの型の値を CLOB または NCLOB データの型の値に変換できます:RAWCHARVARCHARVARCHAR2NCHARNVARCHAR2CLOB、および NCLOB

構文

TO_CLOB(lob_column | char)

パラメーター

パラメーター説明
lob_columnNCLOB データの型の列です。
char文字列値です。許容されるデータの型:CHARVARCHAR2NCHARNVARCHAR2CLOBNCLOB

戻り値

CLOB

CREATE TABLE Employee_to_clob (
  ID         VARCHAR2(4 BYTE),
  First_Name VARCHAR2(10 BYTE)
);
INSERT INTO Employee_to_clob (ID, First_Name) VALUES ('01', 'Jason');

SELECT to_clob(first_name) FROM Employee_to_clob;

出力:

 to_clob
---------
 Jason

RAWTOHEX

RAW 値を 16 進数形式の VARCHAR2 文字列に変換します。各バイトは 2 桁の 16 進数で表されます。

SQL ビルトイン関数として、RAWTOHEXLONGLONG RAWCLOBNCLOBBLOB、および BFILE を除く任意のスカラー型を受け入れます。入力が RAW 型でない場合、関数はデータを同じバイト数で RAW に再キャストします。ただし、データ自体は変更されません。

構文

RAWTOHEX(raw)

パラメーター

パラメーター説明
raw変換対象の値です。許容されるデータの型: LONGLONG RAWCLOBNCLOBBLOB、および BFILE を除く任意のスカラー型です。

戻り値

16 進数形式の VARCHAR2 です。

SELECT rawtohex('hello world'::varchar) FROM DUAL;

出力:

        rawtohex
------------------------
 68656c6c6f20776f726c64

関連関数: HEXTORAW は逆の処理を行い、16 進数文字列を RAW に変換します。

HEXTORAW

16 進数文字列を RAW 値に変換します。

CLOB 値は直接サポートされませんが、暗黙的なデータの型変換を介して渡すことができます。

構文

HEXTORAW(char)

パラメーター

パラメーター説明
char変換対象の 16 進数文字列です。許容されるデータの型:CHARVARCHAR2NCHARNVARCHAR2

戻り値

RAW

SELECT hextoraw(rawtohex('hello world'::bpchar)) FROM DUAL;

出力:

          hextoraw
--------------------------
 \x68656c6c6f20776f726c64

関連関数: RAWTOHEX は逆の処理を行い、RAW 値を 16 進数文字列に変換します。

ASCIISTR

任意の文字セットの文字列をデータベース文字セット内の ASCII 文字列に変換します。非 ASCII 文字は \xxxx エスケープシーケンスに置き換えられます。ここで、xxxx は UTF-16 コードユニットです。

構文

ASCIISTR(char)

パラメーター

パラメーター説明
char任意の文字セットの文字列、または文字列に解決される式です。

戻り値

データベース文字セット内の ASCII 文字列です。

SELECT ASCIISTR('WÈÐńėśĎày') FROM DUAL;

出力:

                asciistr
---------------------------------------
 W\00C8\00D0\0144\0117\015B\010E\00E0y

関連関数: UNISTR は逆の処理を行い、Unicode エスケープシーケンスを国別文字セット内の文字に変換します。