静态SQL
| 序号 | Oracle数据库 | GaussDB数据库 | 差异 |
|---|---|---|---|
| 1 | SELECT | 支持,有差异 | GaussDB和Oracle在某些场景下有不同。 GaussDB中FOR SHARE对检索出来的行加共享锁,不同事务的共享锁不会互相阻塞。若数据在一个事务中被FOR SHARE锁定,在另一个事务中使用SELECT FOR SHARE SKIP LOCKED时,SKIP LOCKED不会跳过锁。 |
| 序号 | Oracle数据库 | GaussDB数据库 | 差异 |
|---|---|---|---|
| 1 | INSERT | 支持 | - |
| 2 | UPDATE | 支持 | - |
| 3 | DELETE | 支持 | - |
| 4 | MERGE | 支持 | - |
| 5 | LOCK TABLE | 支持 | - |
| 6 | INSERT ALL | 支持,有差异 |
|
| 序号 | Oracle数据库 | GaussDB数据库 | 差异 |
|---|---|---|---|
| 1 | COMMIT | 支持 | - |
| 2 | ROLLBACK | 支持 | - |
| 3 | SAVEPOINT | 支持 | - |
| 4 | SET TRANSACTION | 支持,有差异 | GaussDB不支持NAME string语法、USE ROLLBACK SEGMENT rollback_segment语法。 |
| 序号 | 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场景下与其他数据库行为不一致,直接进行业务迁移存在风险。 |
| 序号 | Oracle数据库 | GaussDB数据库 | 差异 |
|---|---|---|---|
| 1 | SQL%FOUND | 支持,有差异 | GaussDB在commit\rollback之后不刷新隐式游标结果,Oracle会在commit\rollback之后刷新隐式游标结果。 |
| 2 | SQL%NOTFOUND | 支持,有差异 | |
| 3 | SQL%ROWCOUNT | 支持,有差异 | |
| 4 | SQL%ISOPEN | 支持,有差异 | |
| 5 | SQL%BULK_ROWCOUNT | 不支持 | |
| 6 | SQL%BULK_EXCEPTIONS | 不支持 |
| 序号 | 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 | 支持 | - |
| 序号 | Oracle数据库 | GaussDB数据库 |
|---|---|---|
| 1 | SQL%FOUND | 支持 |
| 2 | SQL%NOTFOUND | 支持 |
| 3 | SQL%ROWCOUNT | 支持 |
| 4 | SQL%ISOPEN | 支持 |
| 序号 | Oracle数据库 | GaussDB数据库 |
|---|---|---|
| 1 | FOR LOOP | 支持,有差异。 对于FORALL + BULK COLLECT INTO场景, INTO变量在GaussDB中仅返回单条DML语句执行结果,在Oracle中返回DML语句累计执行结果。 |
| 序号 | Oracle数据库 | GaussDB数据库 |
|---|---|---|
| 1 | 存储过程 | 支持 |
| 2 | 匿名块 | 支持 |
| 3 | 函数 | 支持 |
| 4 | Package | 支持 |