2.2.5.2 CASE 语句 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.5.3 循环语句 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.5.4 GOTO 语句和 LABEL 语句 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.6 PL/SQL 异常处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.6.1 系统预定义异常 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.6.2 用户自定义异常 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.6.3 RAISE_APPLICATION_ERROR 语句 . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.7 游标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.7.1 REF 游标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.7.2 隐式游标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.7.3 参数化游标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.2.7.4 静态游标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2.7.5 游标属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.8 静态和动态 SQL 语句 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.9 匿名块、存储过程和函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.2.9.1 匿名块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.2.9.2 存储过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.2.9.3
函数
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.2.10 对象类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.2.11 包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.2.11.1 用户自定义包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.2.11.2 系统内置包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.2.12 触发器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.2.13 消息输出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.2.14 内置标量函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.2.14.1 字符和字符串函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.2.14.2 类型转换函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.2.14.3 日期和时间函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.2.14.4 数学函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.2.14.5 序列函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.2.14.6 条件表达式函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.2.14.7 聚集函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.2.15 其他 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.2.15.1 pipeline 和 pipe row . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.3 SQL 语句兼容特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.3.1 Truncate 语句 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.3.2 层次查询 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.3.3 ROWNUM 伪列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.3.4 ROWID 伪列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.3.5 外连接操作符 (+) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.3.6 DUAL 伪表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.3.7 SELECT INTO 的 FOR UPDATE 子句 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.3.8 UPDATE[前缀] 多列更新 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.3.9 INSERT INTO TABLE([前缀] 列) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.3.10 DELETE [FROM] 语句 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.3.11 MERGE INTO 语句 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.3.12 WITH 子句 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.3.13 FORCE VIEW 语句 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.3.14 支持 SEQUENCE 语句 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.3.15 INSERT ALL|FIRST 语句 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
2.4 模式兼容特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
2.4.1 扩展数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
2.4.2 模式变更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
2.4.3 序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
2