更新时间:2024-05-14 GMT+08:00

PL/SQL基本语法

表1 PL/SQL操作符

序号

Oracle数据库

GaussDB数据库

1

+

支持

2

:=

支持

3

=>

支持

4

%

支持

5

'

支持

6

.

支持

7

||

支持

8

/

支持

9

**

不支持

10

(

支持

11

)

支持

12

:

支持

13

,

支持

14

<<

支持

15

>>

支持

16

/*

支持

17

*/

支持

18

*

支持

19

"

支持

20

..

支持

21

=

支持

22

<>

支持

23

!=

支持

24

~=

支持

25

^=

支持

26

<

支持

27

>

支持

28

<=

支持

29

>=

支持

30

@

支持

31

--

支持

32

;

支持

33

-

支持

表2 逻辑运算符

序号

Oracle数据库

GaussDB数据库

1

NOT

支持

2

AND

支持

3

OR

支持

表3 比较表达式

序号

Oracle数据库

GaussDB数据库

1

IS [NOT] NULL

支持

2

LIKE

支持

3

BETWEEN

支持

4

IN

支持

表4 条件表达式

序号

Oracle数据库

GaussDB数据库

1

simple CASE

支持

2

searched CASE

支持

表5 变量声明相关参数

序号

Oracle数据库

GaussDB数据库

差异

1

%TYPE

支持,有差异。

  • GaussDB不支持record变量%type。
  • GaussDB不支持pkg.record变量%type、schema.pkg.record变量%type作为出入参类型。
  • GaussDB不支持表/视图.column.column%type、schema.表/视图.column.column%type嵌套1层及以上,作为变量类型或者出入参类型。
  • GaussDB不支持record变量.column.column%type、pkg.record变量.column.column%type嵌套1层及以上的record的某列类型,作为变量类型或者出入参类型。

2

%ROWTYPE

支持,有差异。

  • GaussDB在多个CN的环境下,存储过程中无法声明临时表的%ROWTYPE及%TYPE属性。因为临时表仅在当前session有效,在编译阶段其他CN无法看到当前CN的临时表。故多个CN的环境下,会提示该临时表不存在。
  • GaussDB不支持view%rowtype、schema.view%rowtype作为出入参类型。
  • GaussDB不支持package.cursor变量%rowtype作为出入参类型。