云数据库 GAUSSDB-PL/SQL语言:静态SQL

时间:2024-01-05 17:36:07

静态SQL

表24 静态查询 SQL语句

序号

Oracle数据库

GaussDB数据库

差异

1

SELECT

支持,有差异

不同事务中的共享锁在如下场景中不会互相阻塞:

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时,锁不会被跳过。

表25 静态DML SQL语句

序号

Oracle数据库

GaussDB 数据库

差异

1

INSERT

支持

-

2

UPDATE

支持

-

3

DELETE

支持

-

4

MERGE

支持

-

5

LOCK TABLE

支持

-

表26 静态TCL SQL语句

序号

Oracle数据库

GaussDB数据库

差异

1

COMMIT

支持

-

2

ROLLBACK

支持

-

3

SAVEPOINT

支持

-

4

SET TRANSACTION

支持,有差异

-

表27 伪列

序号

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场景下与其他数据库行为不一致,直接进行业务迁移存在风险。

表28 隐式游标属性

序号

Oracle数据库

GaussDB数据库

差异

1

SQL%FOUND

支持

-

2

SQL%NOTFOUND

支持

-

3

SQL%ROWCOUNT

支持

-

4

SQL%ISOPEN

支持

-

5

SQL%BULK_ROWCOUNT

不支持

-

6

SQL%BULK_EXCEPTIONS

不支持

-

表29 显式游标语法及关键字

序号

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

支持

-

5

FETCH

支持

-

6

CURRENT OF CURSOR

支持

-

表30 显式游标属性

序号

Oracle数据库

GaussDB数据库

差异

1

SQL%FOUND

支持

-

2

SQL%NOTFOUND

支持

-

3

SQL%ROWCOUNT

支持

-

4

SQL%ISOPEN

支持

-

表31 游标循环

序号

Oracle数据库

GaussDB数据库

差异

1

FOR LOOP

支持

-

表32 自治事务支持场景

序号

Oracle数据库

GaussDB数据库

差异

1

存储过程

支持

-

2

匿名块

支持

-

3

函数

支持

-

4

Package

支持

-

support.huaweicloud.com/productdesc-gaussdb/gaussdb-39-0010.html