本文介绍了转换函数的语法、参数以及示例等内容。
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ÈÐńėśĎày') FROM DUAL;
asciistr
---------------------------------------
W\00C8\00D0\0144\0117\015B\010E\00E0y