友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
oracle从入门到精通(PDF格式)-第5部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
返回 D1 和 D2 之间相差的天数。该值是一个数值,其小数部分代表一天的几分之几。
dt1…dt2 INTERVAL
返回 DT1 和DT2 之间的时间间隔。
i1…i2 INTERVAL
返回 i1 和 i2 之间的差距。
d1+d2 N/A
非法——仅能进行两个日期之间的相减。
dt1+dt2 N/A
非法——仅能进行两个日期之间的相减。
i1+i2 INTERVAL
返回 i1 和 i2 的和。
d1+n DATE
在 D1 上加上N 天作为DATE 类型返回。N 可以是实数,它包含一天的几分之几。
d1…n DATE
从 D1 上减去N 天作为DATE 类型返回。N 可以是实数,它包含一天的几分之几。
dt1+i1 DATETIME
返回 DT1 和I1 的和。
dt1…i1 DATETIME
返回 DT1 和I1 之间的差距。
i1*n INTERVAL
返回 I1 的N次方。
i1/n INTERVAL
返回 I1 除以N 的值。
表中注:
D1和 D2 指日期值;
DT1 和DT2 指日期时间值;
I1和 I2 指时间间隔值;
N 指数字值。
第 17 页,共 106 页
…………………………………………………………Page 18……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
3。3、显示转换:(conversion)
TO_NUMBER(char';'format_model'') 字符转换到数字类型
TO_DATE(char';'format_model'') 字符转换到日期类型
格式说明符:要与前边要转换的字符串的格式要相同才能转换(匹配问题:格式和位数)。
TO_CHAR(date';'format_model'';nlsparams'')
第二个参数可以省略,不指定格式,按系统默认格式输出。
区分大小写。
使用 FM(在格式控制符前添加)符号可以去掉空格或是首位的零。
如果指定了 NLSPARAMS,则它控制返回字符串的月和日分量所使用的语言。格式为:
'NLS_DATA_LANGUAGE=language';language 指需要的语言。
例:select to_char(sysdate;'FMyyyy…mm…dd') from dual;
5。格式控制符的类型:
YYYY 四位的年
YEAR 年的拼写
MM 2 位数字的月
MONTH 月的全名
MON 月名的前三个字符
DY 星期名的前三个字符
DAY 星期名的全称
DD 2 位的天
6。时间格式控制符:
HH24:MI:SS AM
HH12:MI:SS PM
7。通过“”来实现加入特殊字符的格式控制符。
SELECT TO_CHAR(SYSDATE;'FMyyyy〃年〃mm〃月〃dd〃日〃') from dual;
DDSPTH
~~
DD 是格式控制符。
TH 是序数词,将日期转换成英文的序数词拼写。
SP 是基数词,将日期转换成英文的基数词拼写。
TO_CHAR(NUM';'format_model'';nlsparams'')转换数字
将 NUMBER 类型参数 NUM转换成 VARCHAR2 类型。如果指定 FORMAT,它会控制整个转换。
如果没有指定 FORMAT,那么结果字符串中将包含和 NUM 中有效位的个数相同的字符。NLSPARAMS
用来指定小数点和千分符及货币符号。它的格式可为:'NLS_NUMERIC_CHARS=' ' dg '
'NLS_CURRENCY= ' 'string' ' ' 。 d 和g 分别代表小数点和千分符,STRING 代表货币符号。
数字格式控制符:
9 代表一位数字(替换符。有,数字显示;没有。不什么都显示。)
0 代表一位数字(有数字,显示;没有,强制显示 0。)
美圆符号
L 本地货币
第 18 页,共 106 页
…………………………………………………………Page 19……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
。 小数点
; 千分符
B 当整数部分为 0 时,将整数部分填充为空格。 例:B999
MI 返回带有后继符号而不是前导负号的负数值,正数值将带有后继的空格。999MI
S 返回一个前导符号或后继符号,正数为+,负数为…。 S9999 或 9999S
PR 使用尖括号返回负数。正数将有前导或后继空格。999PR
D 在指定位置返回一个小数点。两侧的 9 的个数指定了最大的位数。99D9
G 在指定位置返回千分符,G 可以在 FORMAT_model 中出现多次。9G999G9
C 在指定位置返回 ISO货币符号。C可以在 FORMAT_model 中出现多次。C99
L 在指定位置上返回本地货币符号。 L99
V 返回一个被乘以 10 的N 次方的数值,这里 N 是V 后边9 的个数。99V99
EEEE 使用科学记数法返回该数值。9。99EEEE
RM 使用大写的罗马数字表示返回该数值。 RM
rm 使用小写的罗马数字表示返回该数值。 rm
FM 返回不含前导和后继空格的数值。 FM99。09
格式控制符位数一定要大于或等于 NUMBER 的位数,不能小于。
用 RR 解决跨世纪问题: 小于 50 的认为是 1950…2050
大于 50 的认为是 1951…1999
数字和日期是不能相互转换的。
ASCIISTR(string)
返回只包含有效的 SQL字符和斜线的字符串。string 中的任何无效的字符将被转换为一个相当
的数字,在之前加上斜线。
BIN_TO_NUM(num';num'。。。)
将一位矢量转换位相当的数字。它的参数是一系列逗号隔开的 NUMS,每一个都必须是 0 或1。
例如 BIN_TO_NUM(1;0;1;1)将返回 11,因为 11 的二进制表示是 1011。当使用分组集合和 GROUP
BY 子句时该函数很有用。
CHARTOROWID(x)函数,
将字符串转换成一个 ROWID 类型的值,注意格式必须采用 ROWID 数据类型格式,即“数据块号:
行序号:数据文件号”。
POSE(string)
以相同字符集中完全规格化 Unicode 形式返回string。string可以是CHAR、VARCHAR2、NCHAR、
NVARCHAR2、CLOB或 NCLOB 类型。
DEPOSE(string)
返回一个 Unicode 字符串。它是 string 的规范分解。string 可以是 CHAR、VARCHAR2、 NCHAR、
NVARCHAR2、CLOB或 NCLOB 类型。
FROM_TZ(timestamp;timezone)
返回一个 TIMESTAMP WITH TIMEZONE 类型值。它将 TIMESTAMP(没有时区信息)和提供的 TIMEZONE
组合在一起。
HEXTORAW(string)
将由 STRING 表示的二进制数值转换为一个 RAW数值。STRING 应该包含十六进制值。STRING 中
的每两个字符表示结果 RAW 中的一个字节。HEXTORAW 和RAWTOHEX 互为反函数。
NUMTODSINTERVAL(x;unit)
第 19 页,共 106 页
…………………………………………………………Page 20……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
将 X 转换为INTERVAL DAY TO SECOND 值,X 应该是一个数字。UNIT 是一个字符字符串(可以
是 CHAR、VARCHAR2、NCHAR 或NVARCHAR2),且是'DAY'、'HOUR'、'MINUTE'、'SECOND'之一。unit
是不区分大小写的,返回值的缺省精度为 9。
NUMTOYMINTERVAL(x;unit)
将 X 转换成INTERVAL YEAR TO MONTH 值,X 应该是一个数字。UNIT 是一个字符字符串(可以
是 CHAR、VARCHAR2、NCHAR 或NVARCHAR2),且是'YEAR'或'MONTH'之一。unit 是不区分大小写的,
返回值的缺省精度为 9。
REFTOHEX(refvalue)
返回一 REF refvalue 的十六进制表示。
RAWTOHEX(rawvalue)
将 RAW 类型值 rawvalue转换为一个十六进制表示的字符串。rawvalue中的每个字节转换为一
个双字符的字符串。
RAWTONHEX(rawvalue)
将 RAW 类型值 rawvalue转换为一个十六进制表示的字符串。rawvalue中的每个字节转换为一
个双字符的字符串。RAWTONHEX 返回值是 NVARCHAR2 类型而不是 VARCHAR2类型。
ROWIDTOCHAR(rowid)函数,将 ROWID类型值转换成字符串。与 CHARTOROWID 互为反函数。
ROWIDYONCHAR(rowid) 与ROWIDTOCHAR类似,返回类型是 NCHAR,而不是 CHAR。
TO_CLOB(string)
将 string 转换为 CLOB。string 可以是文字或另一个 LOB 列。如果参数包含 NCHAR 数据,它被
转换为数据库字符集
TO_DSINTERVAL(string';nlsparams')
将 string(可以是 CHAR、VARCHAR2、NCHAR、NVARCHAR2)转换为 INTERVAL DAY TO SECOND 类型。
如果选定 nlsparams;则 nlsparams 只能包含小数点和千分位字符的 NLS_NUMERIC_CHARARCTERS
表示。
TO_LOB(long_column)
将 long_column 转换成 LOB。这个函数用于将 LONG和 LONG RAW分别转换为 CLOB 和LOB。
TO_MULTI_BYTE(string)
返回将所有单字节字符替换为等价的多字节字符的 STRING。该函数仅当数据库字符集同时包含
单字节和多字节字符时才使用。否则,STRING不会进行任何处理而被返回,与 TO_SINGLE_BYTE
互为反函数。
TO_NCHAR
和 TO_CHAR相似,结果是属于国家字符集而不是数据库字符集。
TO_NCLOB(string)
将 STRING 转换为 NCLOB。STRING 可以是文字或另一 LOB 列。
TO_SINGLE_BYTE(string)
返回将所有双字节字符替换为等价的单字节字符的 STRING。。该函数仅当数据库字符集同时包
含单字节和多字节字符时才使用。否则,STRING不会进行任何处理而被返回,与 TO_MULTI_BYTE
互为反函数。
TO_TIMESTAMP(string';format';nlsparams'')
将其参数 CHAR 或VARCHAR2 类型string 转换成TIMESTAMP 类型。
TO_TIMESTAMP_TZ(string';format';nlsparams'')
将其参数 CHAR 或VARCHAR2 类型string 转换成 TIMESTAMP WITH TIMEZONE 类型。
TO_YMINTERVAL(string)
将 string(可以是 CHAR、VARCHAR2、NCHAR、NVARCHAR2)转换为INTERVAL YEAR TO MONTH 类型。
TO_YMINTERVAL与TO_DSINTERVAL相似,除了它不能使用NLS参数作为参数并返回YEAR TO MONTH
时间间隔而不 DAY TO SECOND 时间间隔。
第 20 页,共 106 页
…………………………………………………………Page 21……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
TO_label(x';y')函数,按照格式 Y将字符串 X转换成 MLSLABEL 类型的一个值,若默认格式为
Y,则按照默认格式进行转换。
dump(w;'x';y';z''')函数;用来返回字符串 EXPR的数据类型,内部的存储位置和字符长度。
dump(expr;return_datatype;start_position;length)。
return_datatype 是指定返回返回位置用什么方式表示,可以为 8、10、16、17,分别表示用八
进制、十进制、十六进制和字符类型。
例:
select dump(last_name;8;3;2) ;dump(last_name;10;3;2) ;
dump(last_name;16;3;2) ;dump(last_name;17;3;2) from employees
where lower(last_name) = 'smith';
greatest(x;y;。。。)函数,返回参数列表中的最大值。其参数的类型是由第一个参数决定的,可
以为数值型、日期型、和字符型等,后面的参数被强制转换成此种数据类型。进行字符串的比
较时,其大小由字符在字符集中的数值决定,在字符集中的数值大,则此字符就大,对于字符
串,此函数返回 VARCHAR2 类型。
least(x;y;。。。。。。)函数,返回列表参数中的最小值。
与上两个函数类似的有:
greatest_lb(x;y;。。。。)函数和 least_lb(x;y;。。。。)函数,分别求出列表中的标签的最大下限
和最小上限,其参数必须为
MLSLABEL 类型,返回值为 RAW MLSLABEL 类型。
user 函数,返回当前用户的数据库用户名。
uid 函数,返回唯一标识当前用户的整数。
这两个函数在完整性约束检查时会用到,可以当作引用变量一样引用它们。
userenv(x)函数,返回当前会话的一些信息,由 X 指定返回何种信息。在写一个指定应用的审
计测试表或决定为当前会话指定哪种语言时会用到,但完整性约束时不能用。
参数:
Entryid 返回有效的审计条目标识
Label 返回当前会话的标签
Language 以“语言。字符集”形式返回所用的语言和字符集
Sessionid 返回正在使用的审计会话号
Terminal 返回当前会话终端所用的操作系统
1。7、嵌套函数:
单行函数可以嵌套任意层;
嵌套函数从最深层开始执行。
1。 通用函数:
BFILENAME(directory;file_name)
返回操作系统中与物理文件 file_name 相关的 BFILE 位置指示符。directory 必须是数据字典
第 21 页,共 106 页
…………………………………………………………Page 22……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
中的一个 DIRECTORY 类型对象。
COALESCE(,,,,可以多个参数)返回从左到右的第一个非空的表达式。如果所有表达式都为
NULL,则返回 NULL。
EMPTY_BLOB/EMPTY_CLOB
返回一个空的 LOB 位置指示符。EMPTY_CLOB 返回一个字符位置指示符,EMPTY_BLOB 返回一个二
进制位置指示符。
EXISTSNODE(XMLType_instrance;Xpath_string)
使用 Xpath_string 中的路径,确定由 XMLType_instrance 标识的 XML 文档的 TRAVELSAL 是否返
回任何节点。这个函数将返回一 个 NUMBER 值,如果没有节点则为 0,如果有节点则为大于 0。
EXTRACT(XMLType_instrance;Xpath_string)
应用 Xpath_string 之后,返回由 XMLType_instrance 标识的XML文档的一部分。
GREATEST(expr1';expr2'。。。)
返回其参数中最大的表达式。在进行比较之前,每个表达式都被隐式转换为 EXPR1 的类型,如
果 EXPR1 是字符类型,则使用非填充空格字符比较,返回结果为 VARCHAR2 类型。
LEAST(expr1';expr2'。。。)
返回其参数中最小的表达式,其余同上。
NVL(EXPR1;EXPR2)
类型必须匹配,如果 EXPR1是 NULL,则返回 EXPR2,否则返回 EXPR1。返回值与 EXPR1类型相
同,除非 EXPR1 是字符类型,在这种情况下将返回 VARCHAR2类型。这个函数用于确保查询记录
集中不包含 NULL 值。
NVL2(EXPR1;EXPR2;EXPR3)
如果 EXPR1是 NULL,则返回 EXPR2,否则返回 EXPR3。返回值与 EXPR2 类型相同,除非 EXPR2
是字符类型,在这种情况下将返回 VARCHAR2 类型。
SYS_CONNECT_BY_PATH 返回列值的从根到结点的路径,它仅在层次查询中有效。
SYS_CONTEXT(namespace;parameter';length')
返回与 namespace 的内容相关联的 patameter 的值。使用 DBMS_SESSION。SET_CONTEXT 过程设置
参数和 namespace。返回值是 VARCHAR2 类型,如果没有指定 length;则最大长度是 255字节。
SYS_DBURIGEN
产生一个 URL 用于从数据库中提取 XML 文档。
SYS_GUID
以 16 位 RAW类型值形式返回一个全局唯一的标识符。
SYS_TYPEID(object_type)
返回指定类型 object_type 的类型 ID。
SYS_XMLAGG
将几个 XML文档或文档片段组合为一个文档。
SYS_XMLGEN
返回一个基于数据库中数据的 XML文档片段。
TREAT(expr AS 'REF' 'schema。'type)
TREAT 用于改变一个表达式的声明类型。仅可以将声明类型改变为给定表达式的子类型或超类
型。以类型'schema。'type 返回expr,如果指定了 REF,则返回 REF。
UID
返回一个唯一标识当前数据库用户的整数,UID没有参数。
VSIZE(x)返回 X 内部表示的字节数。
NULLIF(a;b)如果 A 等于B 返回NULL,如果不等于返回 B。
DUMP(expr';number_format';start_position'';length'')
返回一个包含 EXPR 内部表示信息的 VARCHAR 值,如果没有指定 NUMBER_FORMAT,则返回结果以
第 22 页,共 106 页
…………………………………………………………Page 23……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
十进制形式返回。如果指定了 start_position和 length,则返回从 start_position开始,长
为 length 字节的字符串,缺省是返回整个表达式。所返回的数据类型是内部数据类型编码的对
应数字。
NUMBER_FORMAT
格式 返回结果
8 8 进制符号
10 10 进制符号
16 16 进制符号
17 单字符
编码 数据类型 有效于
1 VARCHAR2 ORACLE7
2 NUMBER ORACLE7
8 LONG ORACLE7
12 DATE ORACLE7
23 RAW ORACLE7
24 LONG RAW ORACLE7
69 ROWID ORACLE7
96 CHAR ORACLE7
112 CLOB ORACLE8
113 BLOB ORACLE8
114 BFILE ORACLE8
180 TIMESTAMP ORACLE9i
181 TIMESTAMP WITH TIMEZONE ORACLE9i
182 INTERVAL YEAR TO MONTH ORACLE9i
183 INTERVAL DAY TO SECON
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!