5. PL/SQL
序号 | 功能 | KingbaseES | Oracle |
---|---|---|---|
数据类型 | |||
1 | SUBTYPE | 支持 | 支持 |
2 | PLS_INTEGER、BINARY_INTEGER | 支持 | 支持 |
3 | 集合类型NESTED、TABLES、ASSOCIATIVE、 ARRAYS | 支持 | 支持 |
4 | RECORD | 支持 | 支持 |
控制语句 | |||
1 | 条件控制语句(if、case) | 支持 | 支持 |
2 | 循环控制语句 (loop) | 支持 | 支持 |
3 | 顺序语句(goto、null) | 支持 | 支持 |
子程序 (存储过程和函数) | |||
1 | 嵌套子程序、包子程序、独立子程序 | 支持 | 支持 |
2 | 子程序调用 | 支持 | 支持 |
3 | 子程序声明 | 支持 | 支持 |
4 | 子程序异常处理 | 支持 | 支持 |
5 | 子程序声明 | 支持 | 支持 |
6 | 子程序参数in、out、in out模式 | 支持 | 支持 |
7 | 子程序参数参数个数支持512 | 支持 | 支持 |
8 | 子程序重载 | 支持 | 支持 |
9 | 递归子程序 | 支持 | 支持 |
10 | 子程序重载 | 支持 | 支持 |
11 | 外部子程序-C | 支持 | 支持 |
匿名块 | |||
1 | 匿名块的创建、执行 | 支持 | 支持 |
触发器 | |||
1 | 语句级、行级触发器 | 支持 | 支持 |
2 | 触发时机before、after、instead of | 支持 | 支持 |
3 | 触发器条件谓词(INSERTING/UPDATING/DELETING) | 支持 | 支持 |
4 | 伪记录 OLD/NEW | 支持 | 支持 |
6 | 事件触发器 | 支持 | 支持 |
7 | 触发器异常处理 | 支持 | 支持 |
8 | 触发器禁止和开启(ENABLE/DISABLE) | 支持 | 支持 |
包 | |||
1 | 自定义包 | 支持 | 支持 |
2 | 内置系统包DBMS_METADATA | 支持 | 支持 |
3 | 内置系统包DBMS_OUTPUT | 支持 | 支持 |
4 | 内置系统包DBMS_DBMS_DDL | 支持 | 支持 |
5 | 内置系统包DBMS_DBMS_SQL | 支持 | 支持 |
静态SQL | |||
1 | SELECT INTO | 支持 | 支持 |
2 | SELECT BULK COLLECT INTO | 支持 | 支持 |
3 | FORALL 语句 | 支持 | 支持 |
4 | TABLE表达式 | 支持 | 支持 |
5 | 伪列(CURRVAL、NEXTVAL、LEVEL) | 支持 | 支持 |
6 | 隐式游标: SQL%ISOPEN/SQL%FOUND/SQL%NOTFOUND/ %ROWCOUNT/SQL%BULK_ROWCOUNT/ SQL%BULK_EXCEPTIONS | 支持 | 支持 |
7 | 显示游标的创建、使用 | 支持 | 支持 |
动态SQL | |||
1 | EXECUTE IMMEDIATE | 支持 | 支持 |
2 | DBMS_SQL 包的方法调用 | 支持 | 支持 |
异常 | |||
1 | 预定义异常 | 支持 | 支持 |
2 | 自定义异常 | 支持 | 支持 |
3 | 编译时警告信息 | 支持 | 支持 |
4 | 异常后重试事务 | 支持 | 支持 |