更新时间:2024-12-04 GMT+08:00
分享

高级包

GaussDB数据库兼容的高级包如表1所示。

表1 支持高级包列表

序号

Oracle数据库

GaussDB数据库

差异

1

DBMS_LOB

DBE_LOB

GaussDB具体用法请参见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_LOB”章节。

2

DBMS_RANDOM

DBE_RANDOM

GaussDB具体用法请参见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_RANDOM”章节。

3

DBMS_OUTPUT

DBE_OUTPUT

GaussDB具体用法请参见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_OUTPUT”章节。

4

UTL_RAW

DBE_RAW

GaussDB具体用法请参见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_RAW”章节。

5

DBMS_SCHEDULER

DBE_SCHEDULER

GaussDB具体用法请参见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_SCHEDULER”章节。

6

DBMS_UTILITY

DBE_UTILITY

GaussDB具体用法请参见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_UTILITY”章节。

7

DBMS_SQL

DBE_SQL

GaussDB具体用法请参见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_SQL”章节。

8

UTL_FILE

DBE_FILE

GaussDB具体用法请参见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_FILE”章节。

9

DBMS_SESSION

DBE_SESSION

GaussDB具体用法请参见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_SESSION”章节。

10

UTL_MATCH

DBE_MATCH

GaussDB具体用法请参见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_MATCH”章节。

11

DBMS_APPLICATION_INFO

DBE_APPLICATION_INFO

GaussDB具体用法请参见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_APPLICATION_INFO”章节。

12

DBMS_XMLDOM

DBE_XMLDOM

GaussDB中具体信息请参见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_XMLDOM”章节。

13

DBMS_XMLPARSER

DBE_XMLPARSER

GaussDB中具体信息请参见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_XMLPARSER”章节。

14

DBMS_ILM

DBE_ILM

GaussDB中具体信息请参见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_ILM”章节。

15

DBMS_ILM_ADMIN

DBE_ILM_ADMIN

GaussDB中具体信息请参见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_ILM_ADMIN”章节。

16

DBMS_COMPRESSION

DBE_COMPRESSION

GaussDB中具体信息请参见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_COMPRESSION”章节。

17

DBMS_HEAT_MAP

DBE_HEAT_MAP

GaussDB中具体信息请参见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_HEAT_MAP”章节。

18

DBMS_DESCRIBE

DBE_DESCRIBE

GaussDB中具体信息请参见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_DESCRIBE”章节。

19

DBMS_XMLGEN

DBE_XMLGEN

GaussDB中具体信息请参见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_XMLGEN”章节。

20

DBMS_STATS

DBE_STATS

GaussDB中具体信息请参见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_STATS”章节。

表2 DBMS_LOB 兼容性说明

序号

Oracle数据库

GaussDB数据库

差异

1

APPEND Procedures

APPEND Procedures

-

2

CLOB2FILE Procedure

不支持

-

3

CLOSE Procedure

BFILECLOSE Procedure

GaussDB:参数类型为BFILE,不存在函数重载。

Oracle:该过程存在3个重载,3个重载的参数lob_loc、lob_loc和file_loc的类型分别为BLOB、CLOB CHARACTER SET ANY_CS和BFILE。

4

COMPARE Functions

COMPARE Functions

GaussDB:存在3个重载函数,对于第三个参数(len)均为BIGINT。

Oracle:存在3个重载函数,对于第三个参数(amount)均为INTEGER。

5

CONVERTTOBLOB Procedure

LOB_CONVERTTOBLOB Procedure

GaussDB:该过程共有5个参数,且第3、4、5个参数类型为BIGINT。

Oracle:该过程共有8个参数,在GaussDB所有参数的基础上增加了blob_csid、lang_context和warning3个参数,类型分别为NUMBER、INTEGER和INTEGER,且第3、4、5个参数类型为INTEGER。

6

CONVERTTOCLOB Procedure

LOB_CONVERTTOCLOB Procedure

GaussDB:该过程共有5个参数。第3、4、5个参数类型为BIGINT。

Oracle:该过程共有8个参数。第3、4、5个参数类型为INTEGER。Oracle的该过程在GaussDB所有参数的基础上增加了3个参数:blob_csid、lang_context和warning,参数类型分别为NUMBER、INTEGER和INTEGER。

7

COPY Procedures

LOB_COPY Functions

-

8

COPY_DBFS_LINK Procedures

不支持

-

9

COPY_FROM_DBFS_LINK

不支持

-

10

CREATETEMPORARY Procedures

CREATE_TEMPORARY Procedures

GaussDB:该过程存在2个重载。第一个重载过程的第一个参数(lob_loc)为BLOB,第二个重载过程的第一个参数(lob_loc)为CLOB;两个重载过程的第三个参数(dur)为INTEGER,默认值为10。

Oracle:该过程存在2个重载。第一个重载过程的第一个参数(lob_loc)为BLOB,第二个重载过程的第一个参数(lob_loc)为CLOB;两个重载过程的第三个参数(dur)的参数类型为PLS_INTEGER,第一个重载过程的dur默认值为DBMS_LOB.SESSION,第二个重载过程的dur默认值为10。

11

DBFS_LINK_GENERATE_PATH Functions

不支持

-

12

ERASE Procedures

LOB_ERASE Procedures

-

13

FILECLOSE Procedure

不支持

-

14

FILECLOSEALL Procedure

不支持

-

15

FILEEXISTS Function

不支持

-

16

FILEGETNAME Procedure

不支持

-

17

FILEISOPEN Function

不支持

-

18

FILEOPEN Procedure

不支持

-

19

FRAGMENT_DELETE Procedure

不支持

-

20

FRAGMENT_INSERT Procedures

不支持

-

21

FRAGMENT_MOVE Procedure

不支持

-

22

FRAGMENT_REPLACE Procedures

不支持

-

23

FREETEMPORARY Procedures

不支持

-

24

GET_DBFS_LINK Functions

不支持

-

25

GET_DBFS_LINK_STATE Procedures

不支持

-

26

GETCHUNKSIZE Functions

GETCHUNKSIZE Functions

-

27

GETCONTENTTYPE Functions

不支持

-

28

GETLENGTH Functions

不支持

-

29

GETOPTIONS Functions

不支持

-

30

GET_STORAGE_LIMIT Function

不支持

-

31

INSTR Functions

MATCH Functions

GaussDB:存在3个重载函数。3个重载函数的第三、四个参数均为BIGINT。

Oracle:存在3个重载函数。3个重载函数的第三、四个参数均为INTEGER。

32

ISOPEN Functions

不支持

-

33

ISREMOTE Function

不支持

-

34

ISSECUREFILE Function

不支持

-

35

ISTEMPORARY Functions

不支持

-

36

LOADBLOBFROMFILE Procedure

LOADBLOBFROMBFILE Procedure

-

37

LOADCLOBFROMFILE Procedure

LOADCLOBFROMBFILE Procedure

-

38

LOADFROMFILE Procedure

LOADFROMBFILE Procedure

-

39

MOVE_TO_DBFS_LINK Procedures

不支持

-

40

OPEN Procedures

BFILEOPEN Procedure

GaussDB:该过程不存在重载。第一个参数(bfile)类型为DBE_LOB.BFILE,第二个参数(open_mode)类型为TEXT,且只支持read模式。

Oracle:该过程存在3个重载。第一个重载过程的第一个参数(lob_loc)类型为NOCOPY BLOB,第二个参数(openmode)类型为BINARY_INTEGER;第二个重载过程的第一个参数(lob_loc)类型为NOCOPY CLOB CHARACTER SET ANY_CS,第二个参数(openmode)类型为BINARY_INTEGER;第三个重载过程的第一个参数(file_loc)类型为NOCOPY BFILE,第二个参数(openmode)类型为BINARY_INTEGER,且只能为file_readonly。

41

READ Procedures

READ Procedures

GaussDB:该过程存在2个重载。

Oracle:该过程存在3个重载。其中前两个重载与GaussDB无差异,第三个过程重载包括4个参数:file_loc、amount、offset和buffer,其类型分别为BFILE、NOCOPY INTEGER、INTEGER和RAW。

42

SET_DBFS_LINK Procedures

不支持

-

43

SETCONTENTTYPE Procedure

不支持

-

44

SETOPTIONS Procedures

不支持

-

45

SUBSTR Functions

LOB_SUBSTR Functions

-

46

TRIM Procedures

STRIP Functions

GaussDB:该过程存在2个重载。两个重载过程的第二个参数(newlen)均为BIGINT。

Oracle:该过程存在2个重载。两个重载过程的第二个参数(newlen)均为INTEGER。

47

WRITE Procedures

WRITE Functions

-

48

WRITEAPPEND Procedures

WRITEAPPEND Functions

-

表3 DBMS_RANDOM 兼容性说明

序号

Oracle数据库

GaussDB数据库

差异

1

INITIALIZE Procedure

不支持

-

2

NORMAL Function

不支持

-

3

RANDOM Function

不支持

-

4

SEED Procedures

DBE_RANDOM.SET_SEED Function

GaussDB:该函数无重载,参数类型为INTEGER。

Oracle:该过程存在2个重载,2个重载过程的参数类型分别为VARCHAR2和BINARY_INTEGER。

5

STRING Function

不支持

-

6

TERMINATE Procedure

不支持

-

7

VALUE Functions

DBE_RANDOM.GET_VALUE Function

GaussDB:该函数无重载。

Oracle:存在无参数的VALUE函数重载,返回NUMBER类型。

表4 DBMS_OUTPUT 兼容性说明

序号

Oracle数据库

GaussDB数据库

差异

1

DISABLE Procedure

DISABLE Function

-

2

ENABLE Procedure

ENABLE Function

-

3

GET_LINE Procedure

GET_LINE Function

-

4

GET_LINES Procedure

GET_LINES Function

GaussDB:该函数无重载,首个参数(lines)数据类型为VARCHAR[]。

Oracle:该过程存在2个重载,2个重载过程的首个参数(lines)分别为CHARARR和DBMSOUTPUT_LINESARRAY。

5

NEW_LINE Procedure

NEW_LINE Function

-

6

PUT Procedure

PUT Function

GaussDB:当数据库服务端字符集server_encoding不是UTF8编码格式且入参的字符编码是合法的UTF8编码时,该函数不会区分入参的数据类型,都会先把该字符编码按照“UTF8 > server_encoding”的转换关系进行转换后再输出。

Oracle:当数据库服务端字符集server_encoding不是UTF8编码格式且入参的字符编码是合法的UTF8编码时,若入参类型是NVARCHAR2,则该过程会先把该字符编码按照“UTF8 > server_encoding”的转换关系进行转换后再输出;若入参为其他字符类型,则会将该字符编码视作非法字符,以占位符的形式输出。

7

PUT_LINE Procedure

PUT_LINE Function

GaussDB:当数据库服务端字符集server_encoding不是UTF8编码格式且入参的字符编码是合法的UTF8编码时,该函数不会区分入参的数据类型,都会先把该字符编码按照“UTF8 > server_encoding”的转换关系进行转换后再输出。

Oracle:当数据库服务端字符集server_encoding不是UTF8编码格式且入参的字符编码是合法的UTF8编码时,若入参类型是NVARCHAR2,则该过程会先把该字符编码按照“UTF8 > server_encoding”的转换关系进行转换后再输出;若入参为其他字符类型,则会将该字符编码视作非法字符,以占位符的形式输出。

表5 UTL_RAW 兼容性说明

序号

Oracle数据库

GaussDB数据库

差异

1

BIT_AND Function

BIT_AND Function

-

2

BIT_COMPLEMENT Function

BIT_COMPLEMENT Function

-

3

BIT_OR Function

BIT_OR Function

GaussDB:两个参数类型被定义为TEXT类型并且返回TEXT类型。

Oracle:两个参数为RAW类型并且返回RAW类型。

4

BIT_XOR Function

BIT_XOR Function

-

5

CAST_FROM_BINARY_DOUBLE Function

CAST_FROM_BINARY_DOUBLE_TO_RAW Function

-

6

CAST_FROM_BINARY_FLOAT Function

CAST_FROM_BINARY_FLOAT_TO_RAW Function

GaussDB:参数n为FLOAT4类型。

Oracle:参数n为FLOAT类型。

7

CAST_FROM_BINARY_INTEGER Function

CAST_FROM_BINARY_INTEGER_TO_RAW Function

GaussDB:参数value为BIGINT类型。

Oracle:参数value为INTEGER类型。

8

CAST_FROM_NUMBER Function

CAST_FROM_NUMBER_TO_RAW Function

GaussDB:参数n为NUMERIC类型

Oracle:参数n为NUMBER类型。

9

CAST_TO_BINARY_DOUBLE Function

CAST_FROM_RAW_TO_BINARY_DOUBLE Function

-

10

CAST_TO_BINARY_FLOAT Function

CAST_FROM_RAW_TO_BINARY_FLOAT Function

GaussDB:函数返回类型为FLOAT4。

Oracle:函数返回类型为FLOAT。

11

CAST_TO_BINARY_INTEGER Function

CAST_FROM_RAW_TO_BINARY_INTEGER Function

GaussDB:参数endianess为INTEGER类型,函数返回类型为INTEGER。

Oracle:参数endianess为PLS_INTEGER类型,函数返回类型为BINARY_INTEGER。

12

CAST_TO_NUMBER Function

CAST_FROM_RAW_TO_NUMBER Function

GaussDB:函数返回类型为NUMERIC。

Oracle:函数返回类型为NUMBER。

13

CAST_TO_NVARCHAR2 Function

CAST_FROM_RAW_TO_NVARCHAR2 Function

-

14

CAST_TO_RAW Function

CAST_FROM_VARCHAR2_TO_RAW Function

-

15

CAST_TO_VARCHAR2 Function

CAST_TO_VARCHAR2 Function

-

16

COMPARE Function

COMPARE Function

GaussDB:函数返回类型为INTEGER。

Oracle:函数返回类型为NUMBER。

17

CONCAT Function

CONCAT Function

-

18

CONVERT Function

CONVERT Function

-

19

COPIES Function

COPIES Function

GaussDB:参数n为NUMERIC类型。

Oracle:参数n为NUMBER类型。

20

LENGTH Function

GET_LENGTH Function

GaussDB:函数返回类型为INTEGER。

Oracle:函数返回类型为NUMBER。

21

OVERLAY Function

OVERLAY Function

-

22

REVERSE Function

REVERSE Function

-

23

SUBSTR Function

SUBSTR Function

GaussDB:参数lob_loc为BLOB类型;参数off_set为INTEGER类型,默认值为1;参数amount为INTEGER类型,默认值为32767。

Oracle:参数r为RAW类型,参数pos为BINARY_INTEGER类型且无默认值,参数len为BINARY_INTEGER类型,默认值为NULL。

24

TRANSLATE Function

TRANSLATE Function

-

25

TRANSLITERATE Function

TRANSLITERATE Function

-

26

XRANGE Function

XRANGE Function

GaussDB:参数start_byte和end_byte无默认值。

Oracle:参数start_byte和end_byte默认为NULL。

表6 DBMS_SCHEDULER 兼容性说明

序号

Oracle数据库

GaussDB数据库

1

ADD_EVENT_QUEUE_SUBSCRIBER Procedure

不支持

2

ADD_GROUP_MEMBER Procedure

不支持

3

ADD_JOB_EMAIL_NOTIFICATION Procedure

不支持

4

ADD_TO_INCOMPATIBILITY Procedure

不支持

5

ALTER_CHAIN Procedure

不支持

6

ALTER_RUNNING_CHAIN Procedure

不支持

7

CLOSE_WINDOW Procedure

不支持

8

COPY_JOB Procedure

不支持

9

CREATE_CHAIN Procedure

不支持

10

CREATE_CREDENTIAL Procedure

CREATE_CREDENTIAL Procedure

11

CREATE_DATABASE_DESTINATION Procedure

不支持

12

CREATE_EVENT_SCHEDULE Procedure

不支持

13

CREATE_FILE_WATCHER Procedure

不支持

14

CREATE_GROUP Procedure

不支持

15

CREATE_INCOMPATIBILITY Procedure

不支持

16

CREATE_JOB Procedure

CREATE_JOB Procedure

17

CREATE_JOB_CLASS Procedure

CREATE_JOB_CLASS Procedure

18

CREATE_JOBS Procedure

不支持

19

CREATE_PROGRAM Procedure

CREATE_PROGRAM Procedure

20

CREATE_RESOURCE Procedure

不支持

21

CREATE_SCHEDULE Procedure

CREATE_SCHEDULE Procedure

22

CREATE_WINDOW Procedure

不支持

23

DEFINE_ANYDATA_ARGUMENT Procedure

不支持

24

DEFINE_CHAIN_EVENT_STEP Procedure

不支持

25

DEFINE_CHAIN_RULE Procedure

不支持

26

DEFINE_CHAIN_STEP Procedure

不支持

27

DEFINE_METADATA_ARGUMENT Procedure

不支持

28

DEFINE_PROGRAM_ARGUMENT Procedure

DEFINE_PROGRAM_ARGUMENT Procedure

29

DISABLE Procedure

DISABLE Procedure

30

DROP_AGENT_DESTINATION Procedure

不支持

31

DROP_CHAIN Procedure

不支持

32

DROP_CHAIN_RULE Procedure

不支持

33

DROP_CHAIN_STEP Procedure

不支持

34

DROP_CREDENTIAL Procedure

DROP_CREDENTIAL Procedure

35

DROP_DATABASE_DESTINATION Procedure

不支持

36

DROP_FILE_WATCHER Procedure

不支持

37

DROP_GROUP Procedure

不支持

38

DROP_INCOMPATIBILITY Procedure

不支持

39

DROP_JOB Procedure

DROP_JOB Procedure

40

DROP_JOB_CLASS Procedure

DROP_JOB_CLASS Procedure

41

DROP_PROGRAM Procedure

DROP_PROGRAM Procedure

42

DROP_PROGRAM_ARGUMENT Procedure

不支持

43

DROP_SCHEDULE Procedure

DROP_SCHEDULE Procedure

44

DROP_WINDOW Procedure

不支持

45

ENABLE Procedure

ENABLE Procedure

46

END_DETACHED_JOB_RUN Procedure

不支持

47

EVALUATE_CALENDAR_STRING Procedure

EVALUATE_CALENDAR_STRING Procedure

48

EVALUATE_RUNNING_CHAIN Procedure

不支持

49

GENERATE_JOB_NAME Function

GENERATE_JOB_NAME Function

50

GET_AGENT_INFO Function

不支持

51

GET_AGENT_VERSION Function

不支持

52

GET_ATTRIBUTE Procedure

不支持

53

GET_FILE Procedure

不支持

54

GET_SCHEDULER_ATTRIBUTE Procedure

不支持

55

OPEN_WINDOW Procedure

不支持

56

PURGE_LOG Procedure

不支持

57

PUT_FILE Procedure

不支持

58

REMOVE_EVENT_QUEUE_SUBSCRIBER Procedure

不支持

59

REMOVE_FROM_INCOMPATIBILITY Procedure

不支持

60

REMOVE_GROUP_MEMBER Procedure

不支持

61

REMOVE_JOB_EMAIL_NOTIFICATION Procedure

不支持

62

RESET_JOB_ARGUMENT_VALUE Procedure

不支持

63

RUN_CHAIN Procedure

不支持

64

RUN_JOB Procedure

RUN_JOB Procedure

65

SET_AGENT_REGISTRATION_PASS Procedure

不支持

66

SET_ATTRIBUTE Procedure

SET_ATTRIBUTE Procedure

67

SET_ATTRIBUTE_NULL Procedure

不支持

68

SET_JOB_ANYDATA_VALUE Procedure

不支持

69

SET_JOB_ARGUMENT_VALUE Procedure

SET_JOB_ARGUMENT_VALUE Procedure

70

SET_JOB_ATTRIBUTES Procedure

不支持

71

SET_RESOURCE_CONSTRAINT Procedure

不支持

72

SET_SCHEDULER_ATTRIBUTE Procedure

不支持

73

STOP_JOB Procedure

STOP_JOB Procedure

表7 DBMS_UTILITY 兼容性说明

序号

Oracle数据库

GaussDB数据库

差异

1

ACTIVE_INSTANCES Procedure

不支持

-

2

ANALYZE_DATABASE Procedure

不支持

-

3

ANALYZE_PART_OBJECT Procedure

不支持

-

4

ANALYZE_SCHEMA Procedure

不支持

-

5

CANONICALIZE Procedure

CANONICALIZE Procedure

GaussDB:参数canon_len默认为1024字节。

Oracle:参数canon_len无默认值。

6

COMMA_TO_TABLE Procedures

COMMA_TO_TABLE Procedure

GaussDB:参数tab为VARCHAR2数组。

Oracle:该过程存在2个重载。参数tab可以为两种类型之一:一种为uncl_array,另一种为lname_array。

7

COMPILE_SCHEMA Procedure

不支持

-

8

CREATE_ALTER_TYPE_ERROR_TABLE Procedure

不支持

-

9

CURRENT_INSTANCE Function

不支持

-

10

DATA_BLOCK_ADDRESS_BLOCK Function

不支持

-

11

DATA_BLOCK_ADDRESS_FILE Function

不支持

-

12

DB_VERSION Procedure

DB_VERSION Procedure

GaussDB:只有参数version,类型为VARCHAR2。Oracle:有参数version和compatibility,类型均为VARCHAR2。

13

EXEC_DDL_STATEMENT Procedure

EXEC_DDL_STATEMENT Function

GaussDB:参数parse_string为TEXT类型。

Oracle:参数parse_string为VARCHAR2类型。

14

EXPAND_SQL_TEXT Procedure

EXPAND_SQL_TEXT Function

GaussDB: 参数output_sql_text为CLOB。

Oracle:参数 output_sql_text为NOCOPY CLOB,通过传引用方式传递OUT参数。

15

FORMAT_CALL_STACK Function

FORMAT_CALL_STACK Function

GaussDB:函数返回类型为TEXT。

Oracle:函数返回类型为VARCHAR2。

16

FORMAT_ERROR_BACKTRACE Function

FORMAT_ERROR_BACKTRACE Function

GaussDB:函数返回类型为TEXT。

Oracle:函数返回类型为VARCHAR2。

17

FORMAT_ERROR_STACK Function

FORMAT_ERROR_STACK Function

GaussDB:函数返回类型为TEXT。

Oracle:函数返回类型为VARCHAR2。

18

GET_CPU_TIME Function

GET_CPU_TIME Function

GaussDB:函数返回类型为BIGINT。

Oracle:函数返回类型为NUMBER。

19

GET_DEPENDENCY Procedure

不支持

-

20

GET_ENDIANNESS Function

GET_ENDIANNESS Function

GaussDB:函数返回类型为INTEGER。

Oracle:函数返回类型为NUMBER。

21

GET_HASH_VALUE Function

GET_HASH_VALUE Function

GaussDB:参数base、hash_size和返回类型均为INTEGER。

Oracle:参数base、hash_size和返回类型均为NUMBER。

22

GET_PARAMETER_VALUE Function

不支持

-

23

GET_SQL_HASH Function

GET_SQL_HASH Function

GaussDB:参数last4bytes 为BIGINT类型,代表MD5哈希值的最后四字节,以无符号整数形式展现,函数返回类型为BIGINT。

Oracle:对应参数pre10ihash为NUMBER类型,用于存储MD5计算得到的16字节中的4字节哈希值。

24

GET_TIME Function

GET_TIME Function

GaussDB:函数返回类型为BIGINT。

Oracle:函数返回类型为NUMBER。

25

GET_TZ_TRANSITIONS Procedure

不支持

-

26

INVALIDATE Procedure

不支持

-

27

IS_BIT_SET Function

IS_BIT_SET Function

GaussDB:参数n和返回值类型为INTEGER。

Oracle:参数n和返回值类型为NUMBER。

28

IS_CLUSTER_DATABASE Function

IS_CLUSTER_DATABASE Function

-

29

MAKE_DATA_BLOCK_ADDRESS Function

不支持

-

30

NAME_RESOLVE Procedure

NAME_RESOLVE Procedure

GaussDB:参数context和part1_type为INTEGER,参数 object_number为OID;GaussDB不支持NUMBER到OID的隐式转换。

Oracle:参数context、part1_type和object_number均为NUMBER。

31

NAME_TOKENIZE Procedure

NAME_TOKENIZE Procedure

GaussDB:参数nextpos为INTEGER类型。

Oracle:参数nextpos为BINARY_INTEGER类型。

32

OLD_CURRENT_SCHEMA Function

OLD_CURRENT_SCHEMA Function

GaussDB:函数返回类型为VARCHAR。

Oracle:函数返回类型为VARCHAR2。

33

OLD_CURRENT_USER Function

OLD_CURRENT_USER Function

GaussDB:函数返回类型为TEXT。

Oracle:函数返回类型为VARCHAR2。

34

PORT_STRING Function

不支持

-

35

SQLID_TO_SQLHASH Function

不支持

-

36

TABLE_TO_COMMA Procedures

TABLE_TO_COMMA Procedure

GaussDB:参数tab为VARCHAR2数组。

Oracle:该存储过程存在2个重载。参数tab可以为两种类型之一:一种为uncl_array,另一种为lname_array。

37

VALIDATE Procedure

不支持

-

38

WAIT_ON_PENDING_DML Function

不支持

-

表8 DBMS_SQL 兼容性说明

序号

Oracle数据库

GaussDB数据库

差异

1

BIND_ARRAY Procedures

SQL_BIND_ARRAY Function

-

2

BIND_VARIABLE Procedures

SQL_BIND_VARIABLEFunction

-

3

BIND_VARIABLE_PKG Procedure

不支持

-

4

CLOSE_CURSOR Procedure

SQL_UNREGISTER_CONTEXT Function

-

5

COLUMN_VALUE Procedure

GET_RESULT Procedure

-

6

COLUMN_VALUE_LONG Procedure

不支持

-

7

DEFINE_ARRAY Procedure

SET_RESULTS_TYPE Procedure

-

8

DEFINE_COLUMN Procedures

SET_RESULT_TYPE Procedure

-

9

DEFINE_COLUMN_CHAR Procedure

不支持

-

10

DEFINE_COLUMN_LONG Procedure

不支持

-

11

DEFINE_COLUMN_RAW Procedure

不支持

-

12

DEFINE_COLUMN_ROWID Procedure

不支持

-

13

DESCRIBE_COLUMNS Procedure

DESCRIBE_COLUMNS Procedure

-

14

DESCRIBE_COLUMNS2 Procedure

不支持

-

15

DESCRIBE_COLUMNS3 Procedure

不支持

-

16

EXECUTE Function

SQL_RUN Function

GaussDB:返回值为常量1。当前对于语句中unknown类型之间的比较,无法正确返回结果。

Oracle:对于INSERT、UPDATE、DELETE语句,返回值是影响的行数,对于其他语句则无意义。

17

EXECUTE_AND_FETCH Function

RUN_AND_NEXT Function

-

18

FETCH_ROWS Function

NEXT_ROW Function

-

19

GET_NEXT_RESULT Procedures

不支持

-

20

IS_OPEN Function

IS_ACTIVE Function

-

21

LAST_ERROR_POSITION Function

不支持

-

22

LAST_ROW_COUNT Function

LAST_ROW_COUNT Function

-

23

LAST_ROW_ID Function

不支持

-

24

LAST_SQL_FUNCTION_CODE Function

不支持

-

25

OPEN_CURSOR Functions

REGISTER_CONTEXT Function

-

26

PARSE Procedures

支持,有差异

GaussDB中为SQL_SET_SQL Function,不支持重载。

27

RETURN_RESULT Procedures

不支持

-

28

TO_CURSOR_NUMBER Function

不支持

-

29

TO_REFCURSOR Function

不支持

-

30

VARIABLE_VALUE Procedures

GET_VARIABLE_RESULT Procedures

-

31

VARIABLE_VALUE_PKG Procedure

不支持

-

表9 DBMS_SQL数据类型兼容性说明

序号

Oracle数据库

GaussDB数据库

1

DBMS_SQL DESC_REC

DBE_SQL.DESC_REC

2

DBMS_SQL DATE_TABLE

DBE_SQL.DATE_TABLE

3

DBMS_SQL NUMBER_TABLE

DBE_SQL.NUMBER_TABLE

4

DBMS_SQL VARCHAR2_TABLE

DBE_SQL.VARCHAR2_TABLE

5

DBMS_SQL BLOB_TABLE

DBE_SQL.BLOB_TABLE

表10 UTL_FILE 兼容性说明

序号

Oracle数据库

GaussDB数据库

差异

1

FCLOSE Procedure

CLOSE Procedure

-

2

FCLOSE_ALL Procedure

CLOSE_ALL Procedure

-

3

FCOPY Procedure

COPY Procedure

-

4

FFLUSH Procedure

FLUSH Procedure

-

5

FGETATTR Procedure

GET_ATTR Procedure

-

6

FGETPOS Function

GET_POS Function

-

7

FOPEN Function

FOPEN Function

-

8

FOPEN_NCHAR Function

FOPEN_NCHAR Function

-

9

FREMOVE Procedure

REMOVE Procedure

-

10

FRENAME Procedure

RENAME Procedure

-

11

FSEEK Procedure

SEEK Procedure

-

12

GET_LINE Procedure

READ_LINE Procedure

-

13

GET_LINE_NCHAR Procedure

READ_LINE_NCHAR Procedure

-

14

GET_RAW Procedure

GET_RAW Procedure

-

15

IS_OPEN Function

IS_OPEN Function

-

16

NEW_LINE Procedure

支持,有差异,NEW_LINE Function

GaussDB将接口定义为Function。

17

PUT Procedure

支持,有差异,WRITE Function

GaussDB将接口定义为Function。

18

PUT_LINE Procedure

支持,有差异,WRITE_LINE Function

GaussDB将接口定义为Function。

19

PUT_LINE_NCHAR Procedure

支持,有差异,WRITE_LINE_NCHAR Function

GaussDB将接口定义为Function。

20

PUT_NCHAR Procedure

支持,有差异,WRITE_NCHAR Function

GaussDB将接口定义为Function。

21

PUTF Procedure

支持,有差异,FORMAT_WRITE Function

GaussDB将接口定义为Function。

22

PUTF_NCHAR Procedure

支持,有差异,FORMAT_WRITE_NCHAR Function

GaussDB将接口定义为Function。

23

PUT_RAW Procedure

支持,有差异,PUT_RAW Function

GaussDB将接口定义为Function。

表11 DBMS_SESSION 兼容性说明

序号

Oracle数据库

GaussDB数据库

差异

1

CLEAR_ALL_CONTEXT Procedure

不支持

-

2

CLEAR_CONTEXT Procedure

CLEAR_CONTEXT Function

-

3

CLEAR_IDENTIFIER Procedure

不支持

-

4

CLOSE_DATABASE_LINK Procedure

不支持

-

5

CURRENT_IS_ROLE_ENABLED Function

不支持

-

6

FREE_UNUSED_USER_MEMORY Procedure

不支持

-

7

GET_PACKAGE_MEMORY_UTILIZATION Procedure

不支持

-

8

IS_ROLE_ENABLED Function

不支持

-

9

IS_SESSION_ALIVE Function

不支持

-

10

LIST_CONTEXT Procedures

不支持

-

11

MODIFY_PACKAGE_STATE Procedure

MODIFY_PACKAGE_STATE Procedure

GaussDB:仅支持入参flags = 1的场景使用。

Oracle:支持flags=1或flags= 2的场景使用。

12

RESET_PACKAGE Procedure

不支持

-

13

SESSION_IS_ROLE_ENABLED Function

不支持

-

14

SESSION_TRACE_DISABLE Procedure

不支持

-

15

SESSION_TRACE_ENABLE Procedure

不支持

-

16

SET_CONTEXT Procedure

SET_CONTEXT Function

GaussDB:仅包括参数namespace,attribute和value,类型均为text。

Oracle:包括参数namespace,attribute,value,username和client_id,类型均为VARCHAR2。

17

SET_EDITION_DEFERRED Procedure

不支持

-

18

SET_IDENTIFIER Procedure

不支持

-

19

SET_NLS Procedure

不支持

-

20

SET_ROLE Procedure

不支持

-

21

SET_SQL_TRACE Procedure

不支持

-

22

SLEEP Procedure

不支持

-

23

SWITCH_CURRENT_CONSUMER_GROUP Procedure

不支持

--

24

UNIQUE_SESSION_ID Function

不支持

-

表12 UTL_MATCH兼容性说明

序号

Oracle数据库

GaussDB数据库

差异

1

EDIT_DISTANCE Function

不支持

-

2

EDIT_DISTANCE_SIMILARITY Function

EDIT_DISTANCE_SIMILARITY Function

GaussDB:参数str1和str2均为TEXT类型,函数返回类型为INTEGER。

Oracle:参数s1和s2为VARCHAR2类型,函数返回类型为PLS_INTEGER。

3

JARO_WINKLER Function

不支持

-

4

JARO_WINKLER_SIMILARITY Function

不支持

-

表13 DBMS_APPLICATION_INFO兼容性说明

序号

Oracle数据库

GaussDB数据库

差异

1

READ_CLIENT_INFO Procedure

READ_CLIENT_INFO Function

GaussDB:参数client_info为TEXT类型。

Oracle:参数client_info为VARCHAR2类型。

2

READ_MODULE Procedure

READ_MODULE Procedure

GaussDB:参数module_name、action_name为TEXT类型。

Oracle:参数module_name、action_name为VARCHAR2类型。

3

SET_ACTION Procedure

SET_ACTION Procedure

GaussDB:参数action_name为TEXT类型。

Oracle:参数action_name为VARCHAR2类型。

4

SET_CLIENT_INFO Procedure

SET_CLIENT_INFO Function

GaussDB:参数str为TEXT类型,且返回类型为void。

Oracle:参数client_info为VARCHAR2类型,无返回值。二者均为写入客户端信息,最大输入64字节,超过64字节将被截断。

5

SET_MODULE Procedure

SET_MODULE Procedure

GaussDB:参数module_name、action_name为TEXT类型。

Oracle:参数module_name、action_name为VARCHAR2类型。

6

SET_SESSION_LONGOPS Procedure

不支持

-

表14 DBMS_XMLDOM 兼容性说明

序号

Oracle数据库

GaussDB数据库

差异

1

DBMS_XMLDOM.APPENDCHILD

DBE_XMLDOM.APPENDCHILD

  • GaussDB:DOCUMENT类型节点下APPEND ATTR类型节点会报“operation not support”错误。

    Oracle:在此场景下不报错,但实际并没有挂载成功。

  • GaussDB:ATTR类型节点下APPEND ATTR类型节点会报“operation not support”错误。

    Oracle:在此场景下不报错,但实际并没有挂载成功。

  • GaussDB:父节点在添加多个ATTR类型子节点时,不允许KEY值相同的子节点同时存在于同一个父节点下。

    Oracle:允许KEY值相同的子节点同时存在于同一个父节点下。

2

DBMS_XMLDOM.CREATEELEMENT

DBE_XMLDOM.CREATEELEMENT

-

3

DBMS_XMLDOM.CREATETEXTNODE

DBE_XMLDOM.CREATETEXTNODE

-

4

DBMS_XMLDOM.FREEDOCUMENT

DBE_XMLDOM.FREEDOCUMENT

GaussDB:释放时不会立刻释放对象,累积一定数量后释放。document下全部节点失效。

Oracle:立即释放对象。

5

DBMS_XMLDOM.FREEELEMENT

DBE_XMLDOM.FREEELEMENT

-

6

DBMS_XMLDOM.FREENODE

DBE_XMLDOM.FREENODE

-

7

DBMS_XMLDOM.FREENODELIST

DBE_XMLDOM.FREENODELIST

GaussDB:nodelist会被释放。

Oracle:释放nodelist后,在原始的doc中还能被查询到。

8

DBMS_XMLDOM.GETATTRIBUTE

DBE_XMLDOM.GETATTRIBUTE

-

9

DBMS_XMLDOM.GETATTRIBUTES

DBE_XMLDOM.GETATTRIBUTES

-

10

DBMS_XMLDOM.GETCHILDNODES

DBE_XMLDOM.GETCHILDNODES

GaussDB:对document的node使用时会包含dtd。

Oracle:不包含dtd。

11

DBMS_XMLDOM.GETCHILDRENBYTAGNAME

DBE_XMLDOM.GETCHILDRENBYTAGNAME

GaussDB:DBE_XMLDOM.GETCHILDRENBYTAGNAME接口的参数ns不支持传入参数" * ",如需获取节点下全部属性,可使用DBE_XMLDOM.GETCHILDNODES接口。

Oracle:支持传入参数" * "。

12

DBMS_XMLDOM.GETDOCUMENTELEMENT

DBE.XMLDOM.GETDOCUMENTELEMENT

-

13

DBMS_XMLDOM.GETFIRSTCHILD

DBE_XMLDOM.GETFIRSTCHILD

-

14

DBMS_XMLDOM.GETLASTCHILD

DBE_XMLDOM.GETLASTCHILD

-

15

DBMS_XMLDOM.GETLENGTH

DBE_XMLDOM.GETLENGTH

-

16

DBMS_XMLDOM.GETLOCALNAME

DBE_XMLDOM.GETLOCALNAME

-

17

DBMS_XMLDOM.GETNAMEDITEM

DBE_XMLDOM.GETNAMEDITEM

-

18

DBMS_XMLDOM.GETNEXTSIBLING

DBE_XMLDOM.GETNEXTSIBLING

-

19

DBMS_XMLDOM.GETNODENAME

DBE_XMLDOM.GETNODENAME

-

20

DBMS_XMLDOM.GETNODETYPE

DBE_XMLDOM.GETNODETYPE

-

21

DBMS_XMLDOM.GETTAGNAME

DBE_XMLDOM.GETTAGNAME

-

22

DBMS_XMLDOM.IMPORTNODE

DBE_XMLDOM.IMPORTNODE

-

23

DBMS_XMLDOM.ISNULL

DBE_XMLDOM.ISNULL

GaussDB:入参为DOMNODELIST类型时,若对象在哈希表中不存在会发生报错。

Oracle:不会报错。

24

DBMS_XMLDOM.ITEM

DBE_XMLDOM.ITEM

-

25

DBMS_XMLDOM.MAKENODE

DBE_XMLDOM.MAKENODE

GaussDB:该函数不支持直接作为函数返回值返回。

Oracle:支持直接作为函数返回值返回。

26

DBMS_XMLDOM.NEWDOMDOCUMENT

DBE_XMLDOM.NEWDOMDOCUMENT

  • GaussDB入参大小需限制在2GB以内。

    Oracle:与CLOB类型大小一致。

  • GaussDB目前暂不支持外部DTD解析。

    Oracle:支持解析外部DTD。

  • GaussDB newdomdocument创建的doc,默认UTF-8字符集。

    Oracle:根据服务端字符集生成。

  • GaussDB从同一个xmltype实例中解析出的每一个doc都是独立的,对doc的修改也不会影响到xmltype。

    Oracle:从同一个xmltype实例中解析出的每一个doc不独立,有关联关系。

  • GaussDB version字段只支持1.0,1.0-1.9解析警告但正常执行,1.9以上报错。

    Oracle:不报错。

  • GaussDB与Oracle数据库DTD校验差异:!ATTLIST to type (CHECK|check|Check) "Ch..."将报错,因默认值"Ch..."不属于括号中枚举值,而Oracle数据库不报错。<!ENTITY baidu "www.baidu.com">...... &Baidu;&writer将报错,因区分字母大小写,Baidu无法与baidu对应。

    Oracle:不报错。

  • GaussDB 与Oracle数据库命名空间校验差异:解析未声明的命名空间标签正常执行。

    Oracle:报错。

27

DBMS_XMLDOM.SETATTRIBUTE

DBE_XMLDOM.SETATTRIBUTE

GaussDB:属性key不支持为null或空字符串。

Oracle:属性key允许为null或空字符串。

28

DBMS_XMLDOM.SETCHARSET

DBE_XMLDOM.SETCHARSET

GaussDB目前支持的字符集有:UTF-8、UTF-16、UCS-4、UCS-2、ISO-8859-1、ISO-8859-2、ISO-8859-3、ISO-8859-4、ISO-8859-5、ISO-8859-6、ISO-8859-7、ISO-8859-8、ISO-8859-9、ISO-2022-JP、Shift_JIS、EUC-JP、ASCII。输入其他字符集会报错或者可能导致输出乱码。

29

DBMS_XMLDOM.SETDOCTYPE

DBE_XMLDOM.SETDOCTYPE

GaussDB name、sysid、pubid的总长度限制在32500个字节以内。

Oracle:限制在32767字节内。

30

DBMS_XMLDOM.WRITETOBUFFER

DBE_XMLDOM.WRITETOBUFFER

  • GaussDB writetobuffer输出buffer限制在1GB以内。

    Oracle:限制在32767字节内。

  • GaussDB输出doc将包含XML声明version和encoding。

    Oracle:用户不主动指定将不包含。

  • GaussDB入参为domnode类型时,如果节点是doc转换的,输出节点将包含XML声明version和encoding。

    Oracle:用户不主动指定将不包含。

  • GaussDB默认以UTF-8字符集输出xml。

    Oracle:根据数据库字符集生成。

31

DBMS_XMLDOM.WRITETOCLOB

DBE_XMLDOM.WRITETOCLOB

  • GaussDB writetoclob大小支持1GB以内。

    Oracle:按CLOB大小支持。

  • GaussDB输出doc将包含XML声明version和encoding。

    Oracle:用户不主动指定将不包含。

  • GaussDB入参为domnode类型时,如果节点是doc转换的,输出节点将包含XML声明version和encoding。

    Oracle:用户不主动指定将不包含。

  • GaussDB 默认以UTF-8字符集输出xml。

    Oracle:根据数据库字符集生成。

32

DBMS_XMLDOM.WRITETOFILE

DBE_XMLDOM.WRITETOFILE

  • GaussDB document入参,filename长度限制在255个字节以内,charset请参考dbe_xmldom.setcharset接口。

    Oracle:filename长度限制受操作系统影响,大于255个字节。

  • GaussDB domnode入参,filename长度限制在255个字节以内,charset请参考dbe_xmldom.setcharset接口。

    Oracle:filename长度限制受操作系统影响,大于255个字节。

  • GaussDB该函数会添加缩进等内容,将输出格式化。输出doc将包含XML声明version和encoding。入参为domnode类型时,如果节点是doc转换的,输出节点将包含XML声明version和encoding。

    Oracle:用户不主动指定将不包含。

  • GaussDB传入newdomdocument()无参创建的doc,在不指定charset时不会报错,默认UTF-8字符集。

    Oracle:会进行报错。

  • GaussDB filename需要在pg_directory中创建的路径下,filename中的\会被转换成/,只允许存在一个/。文件名格式应为pg_directory_name/file_name。

    Oracle:按用户输入不进行转义。

33

DBMS_XMLDOM.GETNODEVALUE

DBE_XMLDOM.GETNODEVALUE

-

34

DBMS_XMLDOM.GETPARENTNODE

DBE_XMLDOM.GETPARENTNODE

-

35

DBMS_XMLDOM.HASCHILDNODES

DBE_XMLDOM.HASCHILDNODES

-

36

DBMS_XMLDOM.MAKEELEMENT

DBE_XMLDOM.MAKEELEMENT

-

37

DBMS_XMLDOM.SETNODEVALUE

DBE_XMLDOM.SETNODEVALUE

  • GaussDB nodeValue入参,可以输入空字符串和NULL值,但不会对节点值进行修改。

    Oracle:空字符串和NULL会将节点值修改为空字符串。

  • GaussDB nodeValue入参,暂不支持转义字符'&',如字符串中包含该转义字符,会清空节点值。

    Oracle:支持转义字符。

38

DBMS_XMLDOM.GETELEMENTSBYTAGNAME

DBE_XMLDOM.GETELEMENTSBYTAGNAME

-

表15 DBMS_XMLPARSER 兼容性说明

序号

Oracle数据库

GaussDB数据库

差异

1

DBMS_XMLPARSER.FREEPARSER

DBE_XMLPARSER.FREEPARSER

-

2

DBMS_XMLPARSER.GETDOCUMENT

DBE_XMLPARSER.GETDOCUMENT

-

3

DBMS_XMLPARSER.GETVALIDATIONMODE

DBE_XMLPARSER.GETVALIDATIONMODE

-

4

DBMS_XMLPARSER.NEWPARSER

支持,有差异,DBE_XMLPARSER.NEWPARSER

GaussDB中parser对象的数量上限为16777215,Oracle数据库中约为1亿。

5

DBMS_XMLPARSER.PARSEBUFFER

支持,有差异,DBE_XMLPARSER.PARSEBUFFER

1. 与Oracle数据库解析字段差异:

字符串encoding只支持UTF-8;version字段只支持1.0,1.0-1.9解析警告但正常执行,1.9以上报错。

2. 与Oracle数据库命名空间校验差异:解析未声明的命名空间标签正常执行,而Oracle数据库会报错。

3. 与Oracle数据库xml预定义实体解析差异:&apos;&quot;会被解析转译为字符’”,而Oracle数据库中预定义实体统一都没有转译为字符。

4. 与Oracle数据库DTD校验差异:
  • !ATTLIST to type (CHECK|check|Check) "Ch..."将报错,因默认值"Ch..."不属于括号中枚举值,而Oracle数据库不报错。
  • <!ENTITY baidu "www.baidu.com">...... &Baidu;&writer将报错,因区分字母大小写,Baidu无法与baidu对应,而Oracle数据库不报错。

6

DBMS_XMLPARSER.PARSECLOB

支持,有差异,DBE_XMLPARSER.PARSECLOB

1. PARSECLOB不支持解析大于等于2GB的clob。

2. 与Oracle数据库解析字段差异:

字符串encoding只支持UTF-8;version字段只支持1.0,1.0-1.9解析警告但正常执行,1.9以上报错。

3. 与Oracle数据库命名空间校验差异:解析未声明的命名空间标签正常执行,而Oracle数据库会报错。

4. 与Oracle数据库xml预定义实体解析差异:&apos;&quot;会被解析转译为字符’”,而Oracle数据库预定义实体统一都没有转译为字符。

5. 与Oracle数据库DTD校验差异:
  • !ATTLIST to type (CHECK|check|Check) "Ch..."将报错,因默认值"Ch..."不属于括号中枚举值,而Oracle数据库不报错。
  • <!ENTITY baidu "www.baidu.com">...... &Baidu;&writer将报错,因区分字母大小写,Baidu无法与baidu对应,而Oracle数据库不报错。

7

DBMS_XMLPARSER.SETVALIDATIONMODE

DBE_XMLPARSER.SETVALIDATIONMODE

-

表16 DBMS_ILM 兼容性说明

序号

Oracle数据库

GaussDB数据库

差异

1

DBMS_ILM.ADD_TO_ILM

不支持

-

2

DBMS_ILM.ARCHIVESTATENAME

不支持

-

3

DBMS_ILM.EXECUTE_ILM

支持,有差异,DBE_ILM.EXECUTE_ILM

  • GaussDB数据库的入参schema在Oracle数据库中对应为owner。
  • GaussDB数据库不支持指定ilm_scope(一次指定多个对象)的操作。

4

DBMS_ILM.EXECUTE_ILM_TASK

不支持

-

5

DBMS_ILM.PREVIEW_ILM

不支持

-

6

DBMS_ILM.REMOVE_FROM_ILM

不支持

-

7

DBMS_ILM.STOP_ILM

DBE_ILM.STOP_ILM

-

表17 DBMS_ILM_ADMIN 兼容性说明

序号

Oracle数据库

GaussDB数据库

差异

1

DBMS_ILM_ADMIN.CLEAR_HEAT_MAP_ALL

不支持

-

2

DBMS_ILM_ADMIN.CLEAR_HEAT_MAP_TABLE

不支持

-

3

DBMS_ILM_ADMIN.CUSTOMIZE_ILM

支持,有差异,DBE_ILM_ADMIN.CUSTOMIZE_ILM

入参parameter取值对应的特性参数存在差异。GaussDB数据库param取值支持1、2、7、11、12、13、14和15。GaussDB数据库param取值为14时,对应的特性参数为WIND_DURATION,用于控制自动调度中执行窗口的持续时长,而ORACLE数据库对应的特性参数则为AUTO_OPTIMIZE_INACTIVITY_THRESHOLD,其表示ado的不活动时间长度。

4

DBMS_ILM_ADMIN.DISABLE_ILM

DBE_ILM_ADMIN.DISABLE_ILM

-

5

DBMS_ILM_ADMIN.ENABLE_AUTO_OPTIMIZE

不支持

-

6

DBMS_ILM_ADMIN.ENABLE_ILM

DBE_ILM_ADMIN.ENABLE_ILM

-

7

DBMS_ILM_ADMIN.

IGNORE_AUTO_OPTIMIZE_

CRITERIA

不支持

-

8

DBMS_ILM_ADMIN.SET_HEAT_MAP_ALL

不支持

-

9

DBMS_ILM_ADMIN.SET_HEAT_MAP_START

不支持

-

10

DBMS_ILM_ADMIN.SET_HEAT_MAP_TABLE

不支持

-

表18 DBMS_COMPRESSION 兼容性说明

序号

Oracle数据库

GaussDB数据库

差异

1

DBMS_COMPRESSION.GET_COMPRESSION_RATIO

支持,有差异,DBE_COMPRESSION.GET_COMPRESSION_RATIO

  • GaussDB不支持LOBs的压缩率获取。
  • 对于单个对象的压缩率获取:
    • GaussDB入参comptype取值仅支持1(未压缩)和2(高级压缩),Oracle还支持1024、2048等取值。
    • GaussDB入参objtype取值仅支持1(表对象),而Oracle还支持2(索引对象)。
    • Oracle数据库使用subset_numrows参数直接来决定采样的行数(即为参数的取值),而GaussDB则使用sample_ratio(采样率)来间接确定采样的行数。

2

DBMS_COMPRESSION.GET_COMPRESSION_TYPE

支持,有差异,DBE_COMPRESSION.GET_COMPRESSION_TYPE

  • Oracle使用rowid来指定待获取压缩类型的行,而GaussDB则是使用行的ctid来指定。
  • 返回值为comptype,其取值差异同GET_COMPRESSION_RATIO。
表19 DBMS_HEAT_MAP 兼容性说明

序号

Oracle数据库

GaussDB数据库

差异

1

DBMS_HEAT_MAP.BLOCK_HEAT_MAP

不支持

-

2

DBMS_HEAT_MAP.EXTENT_HEAT_MAP

不支持

-

3

DBMS_HEAT_MAP.OBJECT_HEAT_MAP

不支持

-

4

DBMS_HEAT_MAP.SEGMENT_HEAT_MAP

不支持

-

5

DBMS_HEAT_MAP.TABLESPACE_HEAT_MAP

不支持

-

6

不支持

DBE_HEAT_MAP.ROW_HEAT_MAP

详见《开发指南》中“存储过程> 高级包 > 二次封装接口(推荐)> DBE_HEAT_MAP”章节。

表20 DBMS_DESCRIBE 兼容性说明

序号

Oracle数据库

GaussDB数据库

差异

1

DBMS_DESCRIBE.DESCRIBE_PROCEDURE

支持,有差异,DBE_DESCRIBE.DESCRIBE_PROCEDURE

  • datatype参数与O存在差异,GaussDB返回数据类型的oid,O数据库返回O数据库内部的数据类型的编号。
  • datalength、dataprecision和scale因GaussDB创建存储过程或函数时无法保留类型的约束(如number(7,2)、varchar2(20)等),该三个参数置0处理;Oracle可使用%type方法获得带约束的数据类型。
  • 具体的行为差异详见《开发指南》>“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_DESCRIBE”章节。
表21 DBMS_STATS 兼容性说明

序号

Oracle数据库

GaussDB数据库

差异

1

DBMS_STATS.ALTER_STATS_HISTORY_RETENTION

不支持

-

2

DBMS_STATS.CANCEL_ADVISOR_TASK

不支持

-

3

DBMS_STATS.CONFIGURE_ADVISOR_FILTER

不支持

-

4

DBMS_STATS.CONFIGURE_ADVISOR_OBJ_FILTER

不支持

-

5

DBMS_STATS.CONFIGURE_ADVISOR_OPR_FILTER

不支持

-

6

DBMS_STATS.CONFIGURE_ADVISOR_RULE_FILTER

不支持

-

7

DBMS_STATS.CREATE_ADVISOR_TASK

不支持

-

8

DBMS_STATS.CONVERT_RAW_VALUE

不支持

-

9

DBMS_STATS.CONVERT_RAW_VALUE_NVARCHAR

不支持

-

10

DBMS_STATS.CONVERT_RAW_VALUE_ROWID

不支持

-

11

DBMS_STATS.COPY_TABLE_STATS

不支持

-

12

DBMS_STATS.CREATE_EXTENDED_STATS

不支持

-

13

DBMS_STATS.CREATE_STAT_TABLE

DBE_STATS.CREATE_STAT_TABLE

  • GaussDB中ownname应传schema名。
  • GaussDB仅支持部分入参功能,详见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_STATS”章节。

14

DBMS_STATS.DELETE_COLUMN_STATS

DBE_STATS.DELETE_COLUMN_STATS

  • GaussDB中ownname应传schema名。
  • GaussDB仅支持部分入参功能,详见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_STATS”章节。
  • GaussDB中,使用该接口可以设置表达式统计信息,但tabname应传该表达式对应的索引名。

15

DBMS_STATS.DELETE_DATABASE_PREFS

不支持

-

16

DBMS_STATS.DELETE_DATABASE_STATS

不支持

-

17

DEDBMS_STATS.DELETE_DICTIONARY_STATS

不支持

-

18

DBMS_STATS.DELETE_FIXED_OBJECTS_STATS

不支持

-

19

DBMS_STATS.DELETE_INDEX_STATS

DBE_STATS.DELETE_INDEX_STATS

  • GaussDB中ownname应传schema名。
  • GaussDB仅支持部分入参功能,详见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_STATS”章节。

20

DBMS_STATS.DELETE_PENDING_STATS

不支持

-

21

DBMS_STATS.DELETE_PROCESSING_RATE

不支持

-

22

DBMS_STATS.DELETE_SCHEMA_PREFS

不支持

-

23

DBMS_STATS.DELETE_SCHEMA_STATS

DBE_STATS.DELETE_SCHEMA_STATS

  • GaussDB中ownname应传schema名。
  • GaussDB仅支持部分入参功能,详见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_STATS”章节。

24

DBMS_STATS.DELETE_SYSTEM_STATS

不支持

-

25

DBMS_STATS.DELETE_TABLE_PREFS

不支持

-

26

DBMS_STATS.DELETE_TABLE_STATS

DBE_STATS.DELETE_TABLE_STATS

  • GaussDB中ownname应传schema名。
  • GaussDB仅支持部分入参功能,详见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_STATS”章节。

27

DBMS_STATS.DIFF_TABLE_STATS_IN_HISTORY

不支持

-

28

DBMS_STATS.DIFF_TABLE_STATS_IN_PENDING

不支持

-

29

DBMS_STATS.DIFF_TABLE_STATS_IN_STATTAB

不支持

-

30

DBMS_STATS.DROP_ADVISOR_TASK

不支持

-

31

DBMS_STATS.DROP_EXTENDED_STATS

不支持

-

32

DBMS_STATS.DROP_STAT_TABLE

DBE_STATS.DROP_STAT_TABLE

-

33

DBMS_STATS.EXECUTE_ADVISOR_TASK

不支持

-

34

DBMS_STATS.EXPORT_COLUMN_STATS

DBE_STATS.EXPORT_COLUMN_STATS

  • GaussDB中ownname应传schema名。
  • GaussDB仅支持部分入参功能,详见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_STATS”章节。
  • 导出的列级统计信息与pg_statistic表保持一致,多列和pg_statistic_ext表保持一致。
  • 支持导出索引表达式统计信息。要求tabname传的是索引名称,colname传的是索引表达式名称。
  • 权限:需要具有查询表的analyze权限以及stattab表的siud权限。

35

DBMS_STATS.EXPORT_DATABASE_PREFS

不支持

-

36

DBMS_STATS.EXPORT_DATABASE_STATS

不支持

-

37

DBMS_STATS.EXPORT_DICTIONARY_STATS

不支持

-

38

DBMS_STATS.EXPORT_FIXED_OBJECTS_STATS

不支持

-

39

DBMS_STATS.EXPORT_INDEX_STATS

DBE_STATS.EXPORT_INDEX_STATS

  • GaussDB中ownname应传schema名。
  • GaussDB仅支持部分入参功能,详见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_STATS”章节。
  • stattab表中,导出的表、分区级统计信息为numrows、numblocks、relallvisible,分别对应系统表pg_class、pg_partition的reltuples、relpages、relallvisible。
  • 权限:需要具有查询表的analyze权限以及stattab表的siud权限。

40

DBMS_STATS.EXPORT_PENDING_STATS

不支持

-

41

DBMS_STATS.EXPORT_SCHEMA_PREFS

不支持

-

42

DBMS_STATS.EXPORT_SCHEMA_STATS

DBE_STATS.EXPORT_SCHEMA_STATS

  • GaussDB中ownname应传schema名。
  • GaussDB仅支持部分入参功能,详见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_STATS”章节。
  • stattab表中,导出的表、分区级统计信息为numrows、numblocks、relallvisible,分别对应系统表pg_class、pg_partition的reltuples,relpages,relallvisible。导出表相关列级统计信息与pg_statistic表和pg_statistic_ext表保持一致。
  • 权限:需要具有stattab表的siud权限。

43

DBMS_STATS.EXPORT_SYSTEM_STATS

不支持

-

44

DBMS_STATS.EXPORT_TABLE_PREFS

不支持

-

45

DBMS_STATS.EXPORT_TABLE_STATS

DBE_STATS.EXPORT_TABLE_STATS

  • GaussDB中ownname应传schema名。
  • GaussDB仅支持部分入参功能,详见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_STATS”章节。
  • stattab表中,导出的表、分区级统计信息为numrows、numblocks、relallvisible,分别对应系统表pg_class、pg_partition的reltuples,relpages,relallvisible。级联导出的列级统计信息与pg_statistic表和pg_statistic_ext表保持一致。
  • 权限:需要具有查询表的analyze权限以及stattab表的siud权限。

46

DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO

不支持

-

47

DBMS_STATS.GATHER_DATABASE_STATS

不支持

-

48

DBMS_STATS.GATHER_DICTIONARY_STATS

不支持

-

49

DBMS_STATS.GATHER_FIXED_OBJECTS_STATS

不支持

-

50

DBMS_STATS.GATHER_INDEX_STATS

不支持

-

51

DBMS_STATS.GATHER_PROCESSING_RATE

不支持

-

52

DBMS_STATS.GATHER_SCHEMA_STATS

不支持

-

53

DBMS_STATS.GATHER_SYSTEM_STATS

不支持

-

54

DBMS_STATS.GATHER_TABLE_STATS

不支持

-

55

DBMS_STATS.GENERATE_STATS

不支持

-

56

DBMS_STATS.GET_ADVISOR_OPR_FILTER

不支持

-

57

DBMS_STATS.GET_ADVISOR_RECS

不支持

-

58

DBMS_STATS.GET_COLUMN_STATS

不支持

-

59

DBMS_STATS.GET_INDEX_STATS

不支持

-

60

DBMS_STATS.GET_PARAM

不支持

-

61

DBMS_STATS.GET_PREFS

不支持

-

62

DBMS_STATS.GET_STATS_HISTORY_AVAILABILITY

DBE_STATS.GET_STATS_HISTORY_AVAILABILITY

GaussDB查询到的是全库存在的最早历史统计信息的收集时间。

63

DBMS_STATS.GET_STATS_HISTORY_RETENTION

DBE_STATS.GET_STATS_HISTORY_RETENTION

-

64

DBMS_STATS.GET_SYSTEM_STATS

不支持

-

65

DBMS_STATS.GET_TABLE_STATS

不支持

-

66

DBMS_STATS.IMPLEMENT_ADVISOR_TASK

不支持

-

67

DBMS_STATS.IMPORT_COLUMN_STATS

DBE_STATS.IMPORT_COLUMN_STATS

  • GaussDB中ownname应传schema名。
  • GaussDB仅支持部分入参功能,详见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_STATS”章节。
  • 导出单列col导出的统计信息与pg_statistic表保持一致。多列ext-col导出的统计信息与pg_statistic_ext表保持一致。
  • 支持导入索引表达式统计信息。要求tabname传的是索引名称,colname传的是索引表达式名称。
  • 权限:需要具有查询表的analyze权限以及stattab表的siud权限。

68

DBMS_STATS.IMPORT_DATABASE_PREFS

不支持

-

69

DBMS_STATS.IMPORT_DATABASE_STATS

不支持

-

70

DBMS_STATS.IMPORT_DICTIONARY_STATS

不支持

-

71

DBMS_STATS.IMPORT_FIXED_OBJECTS_STATS

不支持

-

72

DBMS_STATS.IMPORT_INDEX_STATS

DBE_STATS.IMPORT_INDEX_STATS

  • GaussDB中ownname应传schema名。
  • GaussDB仅支持部分入参功能,详见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_STATS”章节。
  • stattab表中,导入的表、分区级统计信息为numrows、numblocks、relallvisible,分别对应系统表pg_class、pg_partition的reltuples,relpages,relallvisible。
  • 权限:需要具有查询表的analyze权限以及stattab表的siud权限。

73

DBMS_STATS.IMPORT_SCHEMA_PREFS

不支持

-

74

DBMS_STATS.IMPORT_SCHEMA_STATS

DBE_STATS.IMPORT_SCHEMA_STATS

  • GaussDB中ownname应传schema名。
  • GaussDB仅支持部分入参功能,详见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_STATS”章节。
  • stattab表中,导入的表、分区级统计信息为numrows、numblocks、relallvisible,分别对应系统表pg_class、pg_partition的reltuples,relpages,relallvisible。导入表相关列级统计信息与pg_statistic表和pg_statistic_ext表保持一致。
  • 权限:需要具有stattab表的siud权限。

75

DBMS_STATS.IMPORT_SYSTEM_STATS

不支持

-

76

DBMS_STATS.IMPORT_TABLE_PREFS

不支持

-

77

DBMS_STATS.IMPORT_TABLE_STATS

DBE_STATS.IMPORT_TABLE_STATS

  • GaussDB中ownname应传schema名。
  • GaussDB仅支持部分入参功能,详见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_STATS”章节。
  • stattab表中,导入的表、分区级统计信息为numrows、numblocks、relallvisible,分别对应系统表pg_class、pg_partition的reltuples,relpages,relallvisible。级联导入的列级统计信息与pg_statistic表和pg_statistic_ext表保持一致。
  • 权限:需要具有查询表的analyze权限以及stattab表的siud权限。

78

DBMS_STATS.INTERRUPT_ADVISOR_TASK

不支持

-

79

DBMS_STATS.LOCK_PARTITION_STATS

DBE_STATS.LOCK_PARTITION_STATS

GaussDB中ownname应传schema名。

80

DBMS_STATS.LOCK_SCHEMA_STATS

DBE_STATS.LOCK_SCHEMA_STATS

GaussDB中ownname应传schema名。

81

DBMS_STATS.LOCK_TABLE_STATS

DBE_STATS.LOCK_TABLE_STATS

GaussDB中ownname应传schema名。

82

DBMS_STATS.MERGE_COL_USAGE

不支持

-

83

DBMS_STATS.PREPARE_COLUMN_VALUES

不支持

-

84

DBMS_STATS.PREPARE_COLUMN_VALUES_ROWID

不支持

-

85

DBMS_STATS.PUBLISH_PENDING_STATS

不支持

-

86

DBMS_STATS.PURGE_STATS

DBE_STATS.PURGE_STATS

-

87

DBMS_STATS.REMAP_STAT_TABLE

不支持

-

88

DBMS_STATS.REPORT_ADVISOR_TASK

不支持

-

89

DBMS_STATS.REPORT_COL_USAGE

不支持

-

90

DBMS_STATS.REPORT_GATHER_AUTO_STATS

不支持

-

91

DBMS_STATS.REPORT_GATHER_DATABASE_STATS

不支持

-

92

DBMS_STATS.REPORT_GATHER_DICTIONARY_STATS

不支持

-

93

DBMS_STATS.REPORT_GATHER_FIXED_OBJ_STATS

不支持

-

94

DBMS_STATS.REPORT_GATHER_SCHEMA_STATS

不支持

-

95

DBMS_STATS.REPORT_STATS_OPERATIONS

不支持

-

96

DBMS_STATS.RESET_ADVISOR_TASK

不支持

-

97

DBMS_STATS.RESET_COL_USAGE

不支持

-

98

DBMS_STATS.RESET_GLOBAL_PREF_DEFAULTS

不支持

-

99

DBMS_STATS.RESET_PARAM_DEFAULTS

不支持

-

100

DBMS_STATS.RESTORE_DICTIONARY_STATS

不支持

-

101

DBMS_STATS.RESTORE_FIXED_OBJECTS_STATS

不支持

-

102

DBMS_STATS.RESTORE_SCHEMA_STATS

DBE_STATS.RESTORE_SCHEMA_STATS

  • GaussDB中ownname应传schema名。
  • GaussDB仅支持部分入参功能,详见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_STATS”章节。

103

DBMS_STATS.RESTORE_SYSTEM_STATS

不支持

-

104

DBMS_STATS.RESTORE_TABLE_STATS

DBE_STATS.RESTORE_TABLE_STATS

  • GaussDB中ownname应传schema名。
  • GaussDB仅支持部分入参功能,详见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_STATS”章节。

105

DBMS_STATS.RESUME_ADVISOR_TASK

不支持

-

106

DBMS_STATS.SCRIPT_ADVISOR_TASK

不支持

-

107

DBMS_STATS.SEED_COL_USAGE

不支持

-

108

DBMS_STATS.SET_ADVISOR_TASK_PARAMETER

不支持

-

109

DBMS_STATS.SET_COLUMN_STATS

DBE_STATS.SET_COLUMN_STATS

  • GaussDB中ownname应传schema名。
  • GaussDB仅支持部分入参功能,详见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_STATS”章节。

110

DBMS_STATS.SET_DATABASE_PREFS

不支持

-

111

DBMS_STATS.SET_GLOBAL_PREFS

不支持

-

112

DBMS_STATS.SET_INDEX_STATS

DBE_STATS.SET_INDEX_STATS

  • GaussDB中ownname应传schema名。
  • GaussDB仅支持部分入参功能,详见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_STATS”章节。
  • GaussDB中新增了relallvisible入参。

113

DBMS_STATS.SET_PARAM

不支持

-

114

DBMS_STATS.SET_PROCESSING_RATE

不支持

-

115

DBMS_STATS.SET_SCHEMA_PREFS

不支持

-

116

DBMS_STATS.SET_SYSTEM_STATS

不支持

-

117

DBMS_STATS.SET_TABLE_PREFS

不支持

-

118

DBMS_STATS.SET_TABLE_STATS

DBE_STATS.SET_TABLE_STATS

  • GaussDB中ownname应传schema名。
  • GaussDB仅支持部分入参功能,详见《开发指南》中“存储过程 > 高级包 > 二次封装接口(推荐) > DBE_STATS”章节。
  • GaussDB中新增了relallvisible入参。

119

DBMS_STATS.SHOW_EXTENDED_STATS_NAME

不支持

-

120

DBMS_STATS.TRANSFER_STATS

不支持

-

121

DBMS_STATS.UNLOCK_PARTITION_STATS

DBE_STATS.UNLOCK_PARTITION_STATS

GaussDB中ownname应传schema名。

122

DBMS_STATS.UNLOCK_SCHEMA_STATS

DBE_STATS.UNLOCK_SCHEMA_STATS

GaussDB中ownname应传schema名。

123

DBMS_STATS.UNLOCK_TABLE_STATS

DBE_STATS.UNLOCK_TABLE_STATS

GaussDB中ownname应传schema名。

124

DBMS_STATS.UPGRADE_STAT_TABLE

不支持

-

表22 DBMS_XMLGEN 兼容性说明

序号

Oracle数据库

GaussDB数据库

差异

1

DBMS_XMLGEN.CONVERT

DBE_XMLGEN.CONVERT

-

2

DBMS_XMLGEN.NEWCONTEXT

DBE_XMLGEN.NEWCONTEXT

-

3

DBMS_XMLGEN.NEWCONTEXTFROMHIERARCHY

DBE_XMLGEN.NEWCONTEXTFROMHIERARCHY

  • GaussDB生成的递归XML最大深度不能超过5000万层。
  • Oracle的newcontextfromhierarchy方法对于connect by语句生成的xml是带xml头的,但是对于直接构造的数据不带xml头,GaussDB均带xml头。

4

DBMS_XMLGEN.SETCONVERTSPECIALCHARS

DBE_XMLGEN.SETCONVERTSPECIALCHARS

-

5

DBMS_XMLGEN.SETNULLHANDLING

DBE_XMLGEN.SETNULLHANDLING

-

6

DBMS_XMLGEN.SETROWSETTAG

DBE_XMLGEN.SETROWSETTAG

-

7

DBMS_XMLGEN.SETROWTAG

DBE_XMLGEN.SETROWTAG

-

8

DBMS_XMLGEN.USENULLATTRIBUTEINDICATOR

DBE_XMLGEN.USENULLATTRIBUTEINDICATOR

-

9

DBMS_XMLGEN.USEITEMTAGSFORCOLL

DBE_XMLGEN.USEITEMTAGSFORCOLL

-

10

DBMS_XMLGEN.GETNUMROWSPROCESSED

DBE_XMLGEN.GETNUMROWSPROCESSED

-

11

DBMS_XMLGEN.SETMAXROWS

DBE_XMLGEN.SETMAXROWS

-

12

DBMS_XMLGEN.SETSKIPROWS

DBE_XMLGEN.SETSKIPROWS

-

13

DBMS_XMLGEN.RESTARTQUERY

DBE_XMLGEN.RESTARTQUERY

  • GaussDB:调用RESTARTQUERY方法后对更新的数据不可见。
  • Oracle:调用RESTARTQUERY方法后对更新的数据可见。

14

DBMS_XMLGEN.GETXMLTYPE

DBE_XMLGEN.GETXMLTYPE

-

15

DBMS_XMLGEN.GETXML

DBE_XMLGEN.GETXML

-

16

DBMS_XMLGEN.CLOSECONTEXT

DBE_XMLGEN.CLOSECONTEXT

-

相关文档