本文介紹了轉換函數的語法、參數以及示例等內容。
TO_TMINTERVAL
描述
該函數將CHAR
、VARCHAR2
、NCHAR
或NVARCHAR2
數據類型的字符串轉換為INTERVAL YEAR TO MONTH
值。
語法
TO_YMINTERVAL(char)
參數
參數 | 說明 |
char |
|
返回類型
返回INTERVAL YEAR TO MONTH
類型數據。
示例
SELECT to_yminterval('2016-1') FROM DUAL;
to_yminterval
---------------
+2016-01
TO_DAINTERVAL
描述
該函數將CHAR
、VARCHAR2
、NCHAR
或NVARCHAR2
數據類型的字符串轉換為INTERVAL DAY TO SECOND
值。
語法
TO_DSINTERVAL(char[, nlsparam])
參數
參數 | 說明 |
char |
|
nlsparam | 可選參數,此函數中可以指定的唯一有效nlsparam是NLS_NUMERIC_CHARACTERS,采用以下形式: |
返回類型
返回INTERVAL DAY TO SECOND
類型數據。
示例
SELECT to_dsinterval('1 1:1:00') FROM DUAL;
to_dsinterval
---------------
+01 01:01:00
TO_TIMESTAMP_TZ
描述
該函數將CHAR
、VARCHAR2
、NCHAR
或NVARCHAR2
數據類型的char
轉換為TIMESTAMP WITH TIME ZONE
數據類型的值。
語法
TO_TIMESTAMP_TZ(char[, fmt][, 'nlsparam'])
參數
參數 | 說明 |
char | 用于轉換為 |
fmt | 用于指定 |
nlsparam | 可選參數,用來指定返回的月份和日期所使用的語言。 |
返回類型
返回TIMESTAMP WITH TIME ZONE
類型數據。
NUMTODSAINTERVAL
描述
該函數將n
轉換為INTERVAL DAY TO SECOND
類型結果。
interval_unit不區分大小寫。忽略括號內的前導值和尾隨值。默認情況下,返回的精度為9。
語法
NUMTODSINTERVAL(n,interval_unit)
參數
參數 | 說明 |
n |
|
interval_unit |
|
返回類型
返回INTERVAL DAY TO SECOND
類型數據。
示例
SELECT numtodsinterval('3.123456789','hour') FROM DUAL;
numtodsinterval
--------------------
+00 03:07:24.44444
NUMTOYMINTERVAL
描述
該函數將n
轉換為INTERVAL YEAR TO MONTH類型結果。
interval_unit不區分大小寫。忽略括號內的前導值和尾隨值。默認情況下,返回的精度為9。
語法
NUMTOYMINTERVAL(n,interval_unit)
參數
參數 | 說明 |
n |
|
interval_unit |
|
返回類型
返回INTERVAL YEAR TO MONTH
類型數據。
示例
SELECT numtoyminterval('3.123456789','year') FROM DUAL;
numtoyminterval
-----------------
+03-01
UNISTR
描述
UNISTR將解析為字符數據的文本或表達式作為其參數,并以國家字符集形式返回。數據庫的國家字符集可以是AL16、UTF16或UTF8。
UNISTR允許您指定字符串中字符的Unicode編碼值,從而提供對Unicode字符串文字的支持。這對于將數據插入NCHAR列非常有用。
Unicode編碼值的格式為\xxxx
,其中xxxx
是UCS-2編碼格式中字符的十六進制值。補充字符被編碼為兩個代碼單元,第一個來自高替代范圍(U+D800到U+DBFF),第二個來自低替代范圍(U+DC00到U+DFFF)。若要在字符串本身中包含反斜杠,請在其前面加上另一個反斜杠(\\)
。便于移植和保存數據。
語法
UNISTR(string)
參數
參數 | 說明 |
string | 字符串類型,指定用于轉換的字符串。 |
返回類型
返回字符串類型數據。
示例
SELECT UNISTR('abc\00e5\00f1\00f6') FROM DUAL;
unistr
--------
abc???
TO_SINGLE_BYTE
描述
TO_SINGLE_BYTE返回char,并將其所有多字節字符轉換為相應的單字節字符。
char中任何沒有單字節等效字符的多字節字符在輸出中顯示為多字節字符。只有當數據庫字符集同時包含單字節和多字節字符時,此函數才有用。
此函數不直接支持CLOB數據。但是,CLOB可以通過隱式數據轉換作為參數傳入。
語法
TO_SINGLE_BYTE(char)
參數
參數 | 說明 |
char | char的數據類型可以是CHAR、VARCHAR2、NCHAR或NVARCHAR2。 |
返回類型
返回的值與char
的數據類型相同。
示例
SELECT to_single_byte('123$test') FROM DUAL;
to_single_byte
----------------
123$test
TO_MULTI_BYTE
描述
TO_MULTI_BYTE返回char,將其所有單字節字符轉換為相應的多字節字符。
char中任何沒有多字節等效字符的單字節字符在輸出字符串中顯示為單字節字符。只有當數據庫字符集同時包含單字節和多字節字符時,此函數才有用。
此函數不直接支持CLOB數據。但是,CLOB可以通過隱式數據轉換作為參數傳入。
語法
TO_MULTI_BYTE(char)
參數
參數 | 說明 |
char | char的數據類型可以是CHAR、VARCHAR2、NCHAR或NVARCHAR2。 |
返回類型
返回的值與char
的數據類型相同。
示例
select to_multi_byte('Hello'::text) from dual;
to_multi_byte
---------------
Hello
TO_CLOB
描述
TO_CLOB(字符)將LOB列或其他字符串中的NCLOB值轉換為CLOB值。
語法
TO_CLOB(lob_column | char)
參數
參數 | 說明 |
lob_column | lob_column是NCLOB類型的列。 |
char | char可以是CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB或NCLOB中的任何一種數據類型。在PL/SQL包中,可以使用TO_CLOB(字符)函數將RAW、CHAR、VARCHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB或NCLOB值轉換為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
---------
Jason
RAWTOHEX
描述
RAWTOHEX將raw轉換為包含其十六進制表示的字符值。
作為SQL內置函數,如果參數的數據類型不是RAW,則此函數會將使用某些數據字節數表示的參數值轉換為具有相同數據字節數的RAW值。數據本身不會以任何方式進行修改,但數據類型會重新轉換為RAW數據類型。
語法
RAWTOHEX(raw)
參數
參數 | 說明 |
raw | 變量可以為除LONG、LONG RAW、CLOB、NCLOB、BLOB或BFILE之外的任何標量數據類型的參數。 |
返回類型
此函數返回一個VARCHAR2
值,該值具有組成原始值的字節的十六進制表示形式。每個字節由兩個十六進制數字表示。
示例
SELECT rawtohex('hello world'::varchar) FROM DUAL;
rawtohex
------------------------
68656c6c6f20776f726c64
HEXTORAW
描述
HEXTORAW將CHAR、VARCHAR2、NCHAR或NVARCHAR2數據類型中包含十六進制數字的字符轉換為RAW類型數據。
此函數不直接支持CLOB數據。但是,CLOB可以通過隱式數據轉換作為參數傳入。
語法
HEXTORAW(char)
參數
參數 | 說明 |
char | 可以為CHAR、VARCHAR2、NCHAR或NVARCHAR2數據類型。 |
返回類型
返回RAW
類型數據。
示例
SELECT hextoraw(rawtohex('hello world'::bpchar)) FROM DUAL;
hextoraw
--------------------------
\x68656c6c6f20776f726c64
ASCIISTR
描述
ASCIISTR將任何字符集中的字符串或解析為字符串的表達式作為其參數,并返回數據庫字符集中字符串的ASCII版本。非ASCII字符轉換為\xxxx形式,其中xxxx表示UTF-16代碼單元。
語法
ASCIISTR(char)
參數
參數 | 說明 |
char | 可以為任何字符集中的字符串或解析為字符串的表達式。 |
返回類型
返回數據庫字符集中字符串的ASCII
版本。
示例
SELECT ASCIISTR('WèDń???ày') FROM DUAL;
asciistr
---------------------------------------
W\00C8\00D0\0144\0117\015B\010E\00E0y