《oracle从入门到精通(PDF格式)》第13章


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 SECOND ORACLE9i
208 UROWID ORACLE9i
231 TIMESTAMP WITH LOCAL TIMEZONE ORACLE9i
USERENV'option'
基于 option返回包含有关当前会话信息的 VARCHAR2 值。
函数的行为
选项值 USERENV(option)的行为
"OSDBA" 如果当前会话将 OSDBA角色的设置打开了,则返回"TRUE";否则返回 
"FALSE";注意返 回值是 VARCHAR2 类型,而不是 BOOLEAN 类型。
"LABEL" 仅对 TRUSTED ORACLE 中有效,返回当前会话标志。
"LANGUAGE" 返回当前会话所使用的语言和地域,以及数据库字符集,这是 NLS 参数,返 
回形式是 LANGUAGE_TERRITORY。CHARACTERSET。
"TERMINAL" 返回当前会话所使用终端的操作系统标识符。对于分布式的 SQL 语句,返回 
的是本地会话的标识符。
"SESSIONID" 如果初始化参数 AUDIT_TRAIL 被设置为 TRUE,那么将返回审计会话标识符。 
第 23 页,共 106 页 
…………………………………………………………Page 24……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通 
在分布式 SQL 语句中,USERENV("SESSIONID")是无效的。
"ENTRYID" 如果初始化参数 AUDIT_TRAIL 被设置为 TRUE,那么将返回可用的审计项标识 
符。在分布式 SQL 语句中 USERENV("ENTRYID")是无效的。
"LANG" 返回语言名称的 ISO 缩写符号。它的格式比 USERENV("LANGUAGE")要短。
例:
select USERENV("TERMINAL");USERENV("LANGUAGE") from dual;
USERENV("TERMINA USERENV("LANGUAGE")
……………………………………………………………………………………………………………………………………………………………………………… 
WNJ SIMPLIFIED CHINESE_CHINA。ZHS16GBK
2。 条件表达式:
CASE 表达式(简单 CASE)
语法:
CASE 表达式 WHEN 条件1 THEN 返回值 1
WHEN 条件 2 THEN 返回值 2



WHEN 条件 n THEN 返回值 n
ELSE 返回值
END
DECODE 函数
语法:
DECODE(
条件;比较值1,返回值 1
比较值2,返回值 2



比较值n,返回值 n
返回值(不满足条件时)

select last_name;salary;
decode( trunc(salary/2000;0);//条件
0; 0。00;//比较值 1,返回值 1
1; 0。09,
2; 0。20,
3; 0。30,
4; 0。40,
第 24 页,共 106 页 
…………………………………………………………Page 25……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通 
5; 0。42,
6; 0。44,
0。45
) TAX_RATE
from employees
where department_id=80;
3。 从多表中显示数据:
SQL(老版本的)
等值查
小说推荐
返回首页返回目录