
# 静态SQL
表1静态查询 SQL语句 
| 序号 | Oracle数据库 | GaussDB数据库 | 差异                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| 1  | SELECT    | 支持，有差异     | GaussDB和Oracle在某些场景下有不同。 GaussDB中FOR SHARE对检索出来的行加共享锁，不同事务的共享锁不会互相阻塞。若数据在一个事务中被FOR SHARE锁定，在另一个事务中使用SELECT FOR SHARE SKIP LOCKED时，SKIP LOCKED不会跳过锁。 |
   
表2静态DML SQL语句 
| 序号 | Oracle数据库  | GaussDB数据库 | 差异                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| 1  | INSERT     | 支持         | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 2  | UPDATE     | 支持         | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 3  | DELETE     | 支持         | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 4  | MERGE      | 支持         | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 5  | LOCK TABLE | 支持         | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 6  | INSERT ALL | 支持，有差异     | - Oracle不支持对into_clause的表设置别名，GaussDB支持。  - into_clause指定sequence： - Oracle：首次引用nextval会生成下一个数字，但所有非首次引用的nextval都将返回相同数字。  - GaussDB：引用nextval生成的数字可以正常自增。    - Oracle设置plan_hint语句可以正常生效，GaussDB不生效。   |
   
表3静态TCL SQL语句 
| 序号 | Oracle数据库       | GaussDB数据库 | 差异                                                               |
|:---|:---|:---|:---|
| 1  | COMMIT          | 支持         | -                                                                |
| 2  | ROLLBACK        | 支持         | -                                                                |
| 3  | SAVEPOINT       | 支持         | -                                                                |
| 4  | SET TRANSACTION | 支持，有差异     | GaussDB不支持NAME string语法、USE ROLLBACK SEGMENT rollback_segment语法。 |
   
表4伪列 
| 序号 | Oracle数据库           | GaussDB数据库 | 差异                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| 1  | CURRVAL and NEXTVAL | 支持         | -                                                                                                                                                                                                       |
| 2  | LEVEL               | 不支持        | -                                                                                                                                                                                                       |
| 3  | OBJECT_VALUE        | 不支持        | -                                                                                                                                                                                                       |
| 4  | ROWID               | 不支持        | -                                                                                                                                                                                                       |
| 5  | ROWNUM              | 支持，有差异     | 不推荐ROWNUM条件用于JOIN ON子句。 GaussDB中ROWNUM条件用于JOIN ON子句时在LEFT JOIN、RIGHT JOIN、FULL JOIN场景下和MERGE INTO场景下与其他数据库行为不一致，直接进行业务迁移存在风险。 |
   
表5隐式游标属性 
| 序号 | Oracle数据库           | GaussDB数据库 | 差异                                                                      |
|:---|:---|:---|:---|
| 1  | SQL%FOUND           | 支持，有差异     | GaussDB在commit\\rollback之后不刷新隐式游标结果，Oracle会在commit\\rollback之后刷新隐式游标结果。 |
| 2  | SQL%NOTFOUND        | 支持，有差异     | GaussDB在commit\\rollback之后不刷新隐式游标结果，Oracle会在commit\\rollback之后刷新隐式游标结果。 |
| 3  | SQL%ROWCOUNT        | 支持，有差异     | GaussDB在commit\\rollback之后不刷新隐式游标结果，Oracle会在commit\\rollback之后刷新隐式游标结果。 |
| 4  | SQL%ISOPEN          | 支持，有差异     | GaussDB在commit\\rollback之后不刷新隐式游标结果，Oracle会在commit\\rollback之后刷新隐式游标结果。 |
| 5  | SQL%BULK_ROWCOUNT   | 不支持        | GaussDB在commit\\rollback之后不刷新隐式游标结果，Oracle会在commit\\rollback之后刷新隐式游标结果。 |
| 6  | SQL%BULK_EXCEPTIONS | 不支持        | GaussDB在commit\\rollback之后不刷新隐式游标结果，Oracle会在commit\\rollback之后刷新隐式游标结果。 |
   
表6显式游标语法及关键字 
| 序号 | Oracle数据库                                                                                                                                                          | GaussDB数据库 | 差异                                                 |
|:---|:---|:---|:---|
| 1  | CURSOR cursor_name \[ parameter_list \] RETURN return_type;                                                                                                        | 支持         | -                                                  |
| 2  | CURSOR cursor_name \[ parameter_list \] \[ RETURN return_type \] IS select_statement; | 支持         | -                                                  |
| 3  | OPEN                                                                                                                                                               | 支持         | -                                                  |
| 4  | CLOSE                                                                                                                                                              | 支持，有差异     | GaussDB在exception内部会自动关闭，Oracle在exception内部不会自动关闭。 |
| 5  | FETCH                                                                                                                                                              | 支持         | -                                                  |
| 6  | CURRENT OF CURSOR                                                                                                                                                  | 支持         | -                                                  |
   
表7显式游标属性 
| 序号 | Oracle数据库    | GaussDB数据库 |
|:---|:---|:---|
| 1  | SQL%FOUND    | 支持         |
| 2  | SQL%NOTFOUND | 支持         |
| 3  | SQL%ROWCOUNT | 支持         |
| 4  | SQL%ISOPEN   | 支持         |
   
表8游标循环 
| 序号 | Oracle数据库 | GaussDB数据库                                                                                                                                                            |
|:---|:---|:---|
| 1  | FOR LOOP  | 支持，有差异。 对于FORALL + BULK COLLECT INTO场景， INTO变量在GaussDB中仅返回单条DML语句执行结果，在Oracle中返回DML语句累计执行结果。 |
   
表9自治事务支持场景 
| 序号 | Oracle数据库 | GaussDB数据库 |
|:---|:---|:---|
| 1  | 存储过程      | 支持         |
| 2  | 匿名块       | 支持         |
| 3  | 函数        | 支持         |
| 4  | Package   | 支持         |
   
