静态SQL
| 序号 | Oracle数据库 | GaussDB数据库 | 差异 |
|---|---|---|---|
| 1 | SELECT | 支持,有差异。 | GaussDB和Oracle在某些场景下有不同。 GaussDB中不同事务中的共享锁在如下场景中不会互相阻塞: SELECT FOR SHARE - SELECT FOR SHARE; SELECT FOR SHARE - SELECT FOR KEY SHARE; SELECT FOR KEY SHARE - SELECT FOR KEY SHARE; SELECT FOR KEY SHARE - SELECT FOR NO KEY UPDATE; 上述场景中,由于锁与锁之间未阻塞,对在其他事务中存在非阻塞锁的数据指定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 | 支持 |
| 序号 | Oracle数据库 | GaussDB数据库 |
|---|---|---|
| 1 | 存储过程 | 支持 |
| 2 | 匿名块 | 支持 |
| 3 | 函数 | 支持 |
| 4 | Package | 支持 |