PolarDB for Oracle は、Oracle SQL 構文と互換性のある以下の変換関数をサポートします。
TO_YMINTERVAL
文字列を INTERVAL YEAR TO MONTH 値に変換します。
構文
TO_YMINTERVAL(char)パラメーター
| パラメーター | 説明 |
|---|---|
char | 変換対象の文字列です。許容されるデータの型:CHAR、VARCHAR2、NCHAR、NVARCHAR2。 |
戻り値
INTERVAL YEAR TO MONTH
例
SQL 間隔フォーマット(SQL 標準と互換):
SELECT to_yminterval('2016-1') FROM DUAL;出力:
to_yminterval
---------------
+2016-01TO_DSINTERVAL
文字列を INTERVAL DAY TO SECOND 値に変換します。
構文
TO_DSINTERVAL(char[, nlsparam])パラメーター
| パラメーター | 説明 |
|---|---|
char | 変換対象の文字列です。許容されるデータの型:CHAR、VARCHAR2、NCHAR、NVARCHAR2。 |
nlsparam | 省略可能です。NLS_NUMERIC_CHARACTERS を NLS_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:00TO_TIMESTAMP_TZ
文字列を TIMESTAMP WITH TIME ZONE 値に変換します。
構文
TO_TIMESTAMP_TZ(char[, fmt][, 'nlsparam'])パラメーター
| パラメーター | 説明 |
|---|---|
char | 変換対象の文字列です。許容されるデータの型:CHAR、VARCHAR2、NCHAR、NVARCHAR2。 |
fmt | 戻り値となる TIMESTAMP WITH TIME ZONE 値のフォーマットです。 |
nlsparam | 省略可能です。出力における月名および曜日の言語を指定します。 |
戻り値
TIMESTAMP WITH TIME ZONE
NUMTODSINTERVAL
数値を INTERVAL DAY TO SECOND 値に変換します。
interval_unitは大文字・小文字を区別しません。値の前後の丸括弧()は無視されます。戻り値のデフォルト精度は 9 です。
構文
NUMTODSINTERVAL(n, interval_unit)パラメーター
| パラメーター | 説明 |
|---|---|
n | NUMBER 値、または暗黙的に NUMBER に変換される式です。 |
interval_unit | n の単位です。許容されるデータの型:CHAR、VARCHAR2、NCHAR、NVARCHAR2。有効な値:DAY、HOUR、MINUTE、SECOND。 |
戻り値
INTERVAL DAY TO SECOND
例
基本的な変換:
SELECT numtodsinterval('3.123456789', 'hour') FROM DUAL;出力:
numtodsinterval
--------------------
+00 03:07:24.44444NUMTOYMINTERVAL
数値を INTERVAL YEAR TO MONTH 値に変換します。
interval_unitは大文字・小文字を区別しません。値の前後の丸括弧()は無視されます。戻り値のデフォルト精度は 9 です。
構文
NUMTOYMINTERVAL(n, interval_unit)パラメーター
| パラメーター | 説明 |
|---|---|
n | NUMBER 値、または暗黙的に NUMBER に変換される式です。 |
interval_unit | n の単位です。許容されるデータの型:CHAR、VARCHAR2、NCHAR、NVARCHAR2。有効な値:YEAR、MONTH。 |
戻り値
INTERVAL YEAR TO MONTH
例
SELECT numtoyminterval('3.123456789', 'year') FROM DUAL;出力:
numtoyminterval
-----------------
+03-01UNISTR
文字列または式を国別文字セットの値に変換します。国別文字セットは、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 | 変換対象の値です。許容されるデータの型:CHAR、VARCHAR2、NCHAR、NVARCHAR2。 |
戻り値
入力 char と同じデータの型です。
例
SELECT to_single_byte('123$test') FROM DUAL;出力:
to_single_byte
----------------
123$testTO_MULTI_BYTE
シングルバイト文字をそのマルチバイト相当の文字に変換します。
マルチバイト相当の文字を持たないシングルバイト文字は、出力でもシングルバイト文字のまま残ります。この関数は、データベース文字セットにシングルバイト文字とマルチバイト文字の両方が含まれている場合にのみ機能します。
CLOB 値は直接サポートされませんが、暗黙的なデータの型変換を介して渡すことができます。
構文
TO_MULTI_BYTE(char)パラメーター
| パラメーター | 説明 |
|---|---|
char | 変換対象の値です。許容されるデータの型:CHAR、VARCHAR2、NCHAR、NVARCHAR2。 |
戻り値
入力 char と同じデータの型です。
例
SELECT to_multi_byte('Hello'::text) FROM DUAL;出力:
to_multi_byte
---------------
HelloTO_CLOB
NCLOB 列または文字列を CLOB 値に変換します。
PL/SQL パッケージでは、TO_CLOB 関数を使用して、次のデータの型の値を CLOB または NCLOB データの型の値に変換できます:RAW、CHAR、VARCHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB、および NCLOB。
構文
TO_CLOB(lob_column | char)パラメーター
| パラメーター | 説明 |
|---|---|
lob_column | NCLOB データの型の列です。 |
char | 文字列値です。許容されるデータの型:CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB、NCLOB。 |
戻り値
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
---------
JasonRAWTOHEX
RAW 値を 16 進数形式の VARCHAR2 文字列に変換します。各バイトは 2 桁の 16 進数で表されます。
SQL ビルトイン関数として、RAWTOHEX は LONG、LONG RAW、CLOB、NCLOB、BLOB、および BFILE を除く任意のスカラー型を受け入れます。入力が RAW 型でない場合、関数はデータを同じバイト数で RAW に再キャストします。ただし、データ自体は変更されません。
構文
RAWTOHEX(raw)パラメーター
| パラメーター | 説明 |
|---|---|
raw | 変換対象の値です。許容されるデータの型: LONG、LONG RAW、CLOB、NCLOB、BLOB、および BFILE を除く任意のスカラー型です。 |
戻り値
16 進数形式の VARCHAR2 です。
例
SELECT rawtohex('hello world'::varchar) FROM DUAL;出力:
rawtohex
------------------------
68656c6c6f20776f726c64関連関数: HEXTORAW は逆の処理を行い、16 進数文字列を RAW に変換します。
HEXTORAW
16 進数文字列を RAW 値に変換します。
CLOB 値は直接サポートされませんが、暗黙的なデータの型変換を介して渡すことができます。
構文
HEXTORAW(char)パラメーター
| パラメーター | 説明 |
|---|---|
char | 変換対象の 16 進数文字列です。許容されるデータの型:CHAR、VARCHAR2、NCHAR、NVARCHAR2。 |
戻り値
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 エスケープシーケンスを国別文字セット内の文字に変換します。