Oracle -> GaussDB
配置参数 |
参数名称 |
参数说明 |
影响对象 |
修改建议 |
---|---|---|---|---|
long_support |
long数据类型 |
适用于包含LONG列的表。Oracle中, LONG数据类型最大可存储2GB数据。GaussDB中,TEXT数据类型最大可存储1GB数据。 |
表,函数,存储过程,触发器,用户定义类型 |
Oracle中, LONG最多支持2GB数据。GaussDB中没有等效的数据类型。用户设置long_support参数,UGO将LONG数据类型转换为TEXT,该数据来类型最大支持1GB数据。如果列/变量数据值超出限制,则数据更改操作(插入、更新和变量赋值)将失败,并将引发错误。 超过数据大小限制的情况很少发生。用户可以验证实际数据大小,并了解服务所支持的最大数据大小,如果需要,用户可以添加一个额外的列,并在引用该列的任何地方进行适当的更改。 |
longraw_support |
long raw数据类型 |
适用于包含LONG RAW列的表。Oracle中, LONG RAW数据类型最大可存储2GB数据。GaussDB中,BYTEA数据类型最大可存储53862709字节。 |
表,函数,存储过程,触发器,用户定义类型 |
Oracle LONG RAW最多支持2GB数据,GaussDB中没有等效的数据类型。用户设置long_support参数,UGO将LONG RAW数据类型转换为BYTEA数据类型,该数据类型最大支持536862709字节(512 MB-8203字节)。如果列/变量数据变量超出限制,则数据更改(插入、更新和变量赋值)操作将失败,并将引发错误。 超过数据大小限制的情况很少发生。用户可以验证实际数据大小,并了解服务所支持的最大数据大小。如果需要,用户可以添加一个额外的列,并在引用该列的地方进行适当的更改。 |
clob_datatype_show_error |
clob数据类型 |
适用于包含CLOB列的表。Oracle中,CLOB数据类型最大可存储4GB数据。GaussDB中,CLOB/TEXT数据类型最大可存储1GB数据。 |
表,函数,存储过程,触发器,用户定义类型 |
Oracle CLOB数据类型最多支持4GB数据。GaussDB也支持CLOB数据类型,但其最多支持1GB的数据。用户设置clb_datatype_show_error参数,UGO将记录错误消息。如果列/变量数据值超出限制,则数据更改(插入、更新和变量赋值)操作将失败,并将引发错误。 超过数据大小限制的情况很少发生。用户可以验证实际数据大小,并了解服务所支持的最大数据大小。如果需要,用户可以添加额外的列,并在引用该列的地方进行适当的更改。 |
nclob_support |
nclob数据类型 |
适用于包含NCLOB列的表。Oracle中,NCLOB数据类型最大可存储4GB数据。GaussDB V5中,TEXT数据类型最大可存储1GB数据。 |
表,函数,存储过程,触发器,用户定义类型 |
Oracle NCLOB数据类型最大支持4GB数据。GaussDB中没有等效的数据类型。用户设置nclob_support参数,UGO将NCLOB数据类型转换为TEXT数据类型,该数据类型最大可支持1GB数据。如果列/变量数据值超出限制,则数据更改(插入、更新和变量赋值)操作将失败,并将引发错误。 超过数据大小限制的情况很少发生。用户可以验证实际数据大小,并了解要支持的最大数据大小。如果需要,用户可以添加额外的列,并在引用该列的地方进行适当的更改。 |
float_support |
float数据类型 |
适用于包含FLOAT列的表,且FLOAT指定为FLOAT/FLOAT(n),其中n > 53。如果n未被指定,默认值为126。 |
表,函数,存储过程,触发器,用户定义类型 |
Oracle FLOAT数据类型的最大精度(默认值)为126。GaussDB支持FLOAT数据类型,其被隐式转换为DOUBLE PRECISION数据类型。用户可以配置float_support参数,UGO将FLOAT数据类型转换为DOUBLE PRECISION数据类型(最大值为53)或NUMBER 数据类型(在小数点前的范围高达131,072位)点,小数点后最多16,383位)。如果将其转换为DOUBLE PRECISION,精度大于53,将引发错误,语句将失败。 用户可以根据实际精度值配置该参数。如果未指定或大于53,用户可以将参数设置为NUMBER或设置为FLOAT(53)。 |
xml_support |
XMLTYPE数据类型 |
适用于包含XMLTYPE数据类型的表。 |
表,函数,存储过程,触发器,用户定义类型 |
Oracle XMLTYPE数据类型数据最多支持4GB数据。GaussDB中没有等效的数据类型。用户设置xml_support参数,UGO将XMLTYPE数据类型转换为TEXT或JSON,该两种类型都最大支持1GB数据,并且都与Oracle XMLTYPE不匹配。 超过数据大小限制的情况很少发生。用户可以验证实际数据大小并了解要支持的最大数据大小。如果需要,用户可以添加额外的列,并在引用该列的地方进行适当的更改。用户可以编写用户定义的函数或编写应用程序端代码。 |
number_with_zero_scale |
小数位数为零的数字数据类型 |
适用于包含小数位数为零或无小数位数的数字数据类型的表。 |
表,函数,存储过程,触发器,用户定义类型 |
如果NUMBER数据类型的比例为0,用户可以使用UGO将NUMBER数据类型转换为INTEGER数据类型(smallint , int , bigint)。 |
SDO_GEOMETRY |
SDO_GEOMETRY对象类型 |
适用于包含SDO_GEOMETRY对象类型的表。GaussDB没有等价的数据类型。 |
表,函数,存储过程,触发器,用户定义类型 |
GaussDB中没有等效的数据类型。GaussDB支持用户自定义数据类型,可以将此数据类型转换为用户自定义数据类型,并在引用具有此类型列/变量的地方进行适当的更改。 |
MBRCOORDLIST |
MDSYS.MBRCOORDLIST对象类型 |
适用于包含MDSYS.MBRCOORDLIST对象类型的表脚本。GaussDB没有等价的数据类型。 |
表,函数,存储过程,触发器,用户定义类型 |
GaussDB中没有等效的数据类型。GaussDB支持用户自定义数据类型,可以将此数据类型转换为用户自定义数据类型,并在引用具有此类型列/变量的地方进行适当的更改。 |
GEOMETRY |
GEOMETRY对象类型 |
适用于包含GEOMETRY对象类型的表脚本。GaussDB没有等价的数据类型。 |
表,函数,存储过程,触发器,用户定义类型 |
GaussDB中没有等效的数据类型。GaussDB支持用户自定义数据类型,可以将此数据类型转换为用户自定义数据类型,并在引用具有此类型列/变量的地方进行适当的更改。 |
partition_columns_with_unique_constraint |
具有唯一约束的表列分区 |
适用于包含分区语法以及主键或唯一键的表脚本。 |
表,索引 |
GaussDB中唯一约束(包括主键)指定的列应该是区键列的超级集。由于此限制,如果唯一约束不包含任何一个分区键列,则表创建失败。 用户设置partition_columns_with_unique_constraint参数后, UGO可以注释唯一约束或将分区列添加到唯一约束中。转换后,表中可能会创建重复记录,因此在其子表中创建引用完整性约束时也会产生问题,GaussDB不支持。 |
mig_interval_partition |
表间隔分区 |
适用于包含INTERVAL分区语法的表脚本。 |
表 |
GaussDB不支持间隔分区,用户设置mig_interval_partition参数注释此语法。注释后,该表将成为普通表(而不是分区表),客户将无法获得分区在性能、可管理性和可用性等方面的优势。 根据指定的间隔分区条件创建多个表(在不同的表空间上),并在引用表的地方进行适当的更改。 |
on_null_support |
DEFAULT ON NULL子句 |
适用于包含DEFAULT ON NULL关键字的表脚本。DEFAULT ON NULL子句强制将列设置为默认值,即使INSERT语句中显式包含空值。GaussDB中没有等价的子句。 |
表 |
GaussDB中没有等效的子句。可以在表上写“插入触发器”语句处理此问题。 |
generated_identity_support |
IDENTITY列 |
适用于包含IDENTITY列,且该列使用GENERATED AS IDENTITY的表脚本。 |
表,序列 |
用户可以将此参数设置为适当的值(如:Serial,Small Serial, BIG Serial, Default sequence)。 |
read_only_table |
表只读子句 |
适用于包含“read only”关键字的表脚本。Oracle中,执行ALTER TABLE命令将表标记为只读。当表处于只读模式时,不允许执行任何试图修改表数据的操作。 |
表 |
用户可以将此参数设置为适当的值(如:Comment,Ignore,Trigger)。 |
global_temp_table_support |
全局临时表 |
适用于包含GLOBAL TEMPORARY关键字的表脚本。全局临时表是一个永久的数据库对象,即使会话断开,表结构也会保留在数据库中。本地临时表仅仅对当前会话可用,一旦会话断开,该表就会被删除。GaussDB只支持本地临时表。 |
表 |
GaussDB分布式版本不支持全局临时表。用户设置global_temp_table_support参数转换为本地临时表。当结束会话时,本地临时表的数据清空,表也会被删除,而全局临时表只有数据清空。 调用一个自定义函数,该函数可以检查临时表是否存在于该表被引用的位置,如果不存在,则创建该表。 |
comment_foreign_key |
FOREIGN KEY约束 |
适用于包含FOREIGN KEY的表脚本。 |
表,索引 |
GaussDB分布式版本不支持FOREIGN KEY约束。用户设置comment_foreign_key参数,注释该约束。注释后,并不能确保数据保持一致,即有可能创建不一致的数据。 在源表上写入适用的DML(插入、更新、删除)触发器。 |
unused_column_support |
UNUSED关键字 |
适用于包含UNUSED关键字的表脚本。 |
表 |
用户可以将此参数设置为适当的值。0表示不转换,1表示删除未使用的列。 |
bitmap_index |
bitmap索引 |
适用于包含BITMAP关键字的create index语句。 |
索引 |
用户可以将此参数设置为适当的值。0表示不转换,1表示注释BITMAP索引,2表示创建BTREE索引。 |
reverse_support |
索引语句中使用REVERSE关键字 |
适用于包含REVERSE关键字的create index语句。 |
索引 |
用户可以将此参数设置为适当的值。IGNORE表示不转换,COMMENT表示注释REVERSE。 |
unsupported_func_index |
索引中使用函数 |
适用于包含不支持函数(如TRUNC函数)的create index语句。 |
索引 |
用户可以将此参数设置为适当的值。0表示不转换,1表示注释创建索引的语句。 |
comment_tablespace |
表空间(表空间映射高于此配置) |
适用于包含TABLESPACE子句的create table和create index语句。 |
表空间,表 |
用户可以将此参数设置为适当的值。FALSE表示不转换,TRUE表示注释表空间。 |
viewEditioning |
编辑视图 |
适用于包含EDITIONING关键字的视图脚本。Oracle允许在编辑视图中创建DML触发器。 |
视图 |
用户可以将此参数设置为适当的值。0表示不转换,1表示注释EDITIONING关键字。 |
seq_max_min_value |
超出限制的序列值 |
适用于包含MAXVALUE/ MINVALUE的序列脚本,且该MAXVALUE/ MINVALUE值超出GaussDB支持的值。 |
序列,表 |
Oracle支持的MAXVALUE和MINVALUE分别为1027和-1026。如果输入的序列的MINVALUE / MAXVALUE超出范围(-9223372036854775808至9223372036854775807),gaussDB 主备版-2.0 企业版及之后版本替换为LARGE SEQUENCE,分布式和GaussDB 主备版-1.4 企业版替换为边界值。生成的序列值不会超出GaussDB V5的序列范围。如果最小值/最大值超过限制,GaussDB迁移脚本编译失败。 超过数据大小限制的情况很少发生。可以引入一个表保存这些序列的详细信息,包括最后生成的序列值、升序/降序、增量值等。此外,可以自定义函数匹配Oracle中的NEXTVAL和CURRVAL函数。 |
otherthan_gregorian |
GREGORIAN以外的日历类型 |
适用于包含除GREGORIAN外日历类型的TO_DATE函数。 |
表 |
GaussDB中,TO_DATE和TO_TIMESTAMP函数只支持GREGORIAN日历指定的参数。Oracle中,如果 TO_DATE函数中指定了除GREGORIAN日历外的第三个参数,用户可以注释GREGORIAN日历(设置otherthan_gregorian 参数)。 无替代方案。 |
default_schema |
设置默认schema名称 |
适用于创建数据库对象时,没有给定schema名称的情况。 |
schema |
用户须根据要求设置默认schema的名称。 |
package_name_delimiter |
设置包名分隔符 |
适用于包含创建包的脚本。 |
函数,触发器,存储过程 |
GaussDB某些版本支持包。用户可以设置此参数,将对象名称与子对象连接。 |
pkg_naming |
包 |
适用于包,将允许将包作为schema或将包名称与存储过程和函数名称合并。 |
包 |
GaussDB某些版本支持包。用户可以设置此参数,将对象名称与子对象连接。 |
varray_size |
PL/SQL表 |
适用于PL/SQL表在存储过程、函数和包中使用的情况。 |
包,函数,存储过程 |
用户可以根据需要设置VARRAY的大小。 |
record_type_usage_handling |
Record类型 |
适用于存储过程、函数和包中使用Record类型的情况。 |
包,函数,存储过程 |
- |
deployment_type |
部署模式 |
适用于部署模式支持的特性。 |
包,函数,存储过程 |
GaussDB中,分布键列只支持其所支持的数据类型。如果表中的列不包含这些数据类型,则该表将创建失败。此外,如果主键/唯一约束的第一列数据类型不被支持,该表也将创建失败。 表中的所有数据类型都不被支持的情况很少发生。用户可以将标识的分布列数据类型转换为等价的,支持的数据类型。例如,如果标识的分布列是双精度数据类型(该分布列不支持该数据类型),用户可以将其转换为数字类型。 |
clob_function_support |
在函数中使用clob数据类型 |
此适用于包含CLOB列的函数。 Oracle中,CLOB数据类型最大可存储4GB数据。GaussDB中,CLOB/TEXT数据类型最大可存储1GB数据。 |
函数,存储过程,触发器,用户定义类型 |
用户可以将此参数设置为适当的值。IGNORE表示不转换,MIGRATE表示转换为适当的数据类型。 |
blob_datatype_show_error |
支持blob数据类型 |
此适用于包含BLOB列的函数。 Oracle中,BLOB数据类型最大可存储4GB数据。GaussDB中,BLOB数据类型最大可存储530MB数据。 |
表,函数,存储过程,触发器,用户定义类型 |
Oracle BLOB数据类型最多支持4GB数据。GaussDB支持BLOB数据类型,最多支持536862709字节(512 MB–8203字节)。用户设置blob_datatype_show_error参数,让UGO记录错误消息。如果列或变量的数据超出此限制,则数据更改(插入、更新和变量赋值)操作将失败,并将引发错误。 --- 超出数据大小限制的情况很少发生,因为用户可以验证实际数据大小,并了解该服务所支持的最大数据大小。若有需要,用户可以添加额外的列,并在引用该列的地方进行适当的更改。 |
temptable_schemaname_support |
全局临时表名转换 |
适用于包含GLOBAL TEMPORARY关键字的输入表脚本,且实例为分布式部署。全局临时表可以被转换为本地临时表。在分布式模式下,GaussDB的临时表不支持schema 名。 |
表 |
- |
unique_in_distributed_env |
分布式环境(多数据节点)的唯一约束和索引 |
适用于包含唯一约束或索引的多数据节点目标数据库。 |
表,索引 |
GaussDB中,主键约束/唯一约束或索引中指定列的列表是指分布键列的列表超集。因此,CREATE TABLE、ALTER TABLE ADD CONSENT和CREATE UNIQUE INDEX语句在分布式环境中可能会执行失败。 --- 注释唯一约束或索引,将唯一索引转换为普通索引(通过注释UNIQUE关键字),或将分布列添加到的唯一约束/索引(设置unique_in_distributed_env参数)。转换后,表中可能会创建重复记录,因此在其子表中创建引用完整性约束时也会产生问题。 |
migrate_distributed_table |
迁移分布式表和索引 |
不迁移分布式环境中的表和索引。 |
表,索引 |
- |
external_global_user_support |
全局或外部用户 |
.忽略或注释该语句,或将外部/全局用户转换为普通数据库用户。 |
系统 |
- |
system_role_support |
系统角色 |
无法将系统角色授予用户。此配置用于处理此类型要求。 |
系统 |
- |
gauss_version |
支持的GaussDB版本 |
基于该配置项值,UGO将执行package迁移 |
包 |
- |
list_partition_support |
LIST分区 |
GaussDB 3.2分布式和主备版本支持LIST分区。此配置将处理此类型要求 |
表,索引 |
GaussDB 3.1 分布式及其以下版本部署不支持LIST分区。用户可以在转换过程中注释该语法。注释后,该表将成为普通表(而不是分区表),客户将无法获得分区在性能、可管理性和可用性等方面的优势。 根据指定的LIST分区条件创建多个表(在不同的表空间上),并在引用表的地方进行适当的更改。 |
reserved_keyword_objectname_support |
含有保留关键字符的对象名称大小写转换 |
含有保留关键字的对象名称将根据配置转换大小写。 |
表,索引,包,物化视图,函数,存储过程,触发器,用户自定义类型,视图 |
- |
udt_support |
用户定义类型 |
GaussDBV5R1的某些版本不支持用户自定义类型。此配置用于处理该数据类型。 |
包、函数、存储过程 |
- |
hierarchial_clause_support |
层次查询 |
GaussDB V5部分版本不支持层次查询。此配置将处理此类型要求。 |
包、物化视图、函数、存储过程、触发器、视图 |
- |
bulk_collect_support |
BULK COLLECT语法 |
GaussDB V5R2版本开始支持BULK COLLECT语法。此配置参数用于转换BULK COLLECT语法。 |
包、函数、存储过程、触发器 |
- |
savepoint_support |
SAVEPOINT语法 |
GaussDB V5R2版本开始支持SAVEPOINT语法。此配置用于处理该语法。 |
包、函数、存储过程、触发器 |
- |
autonomous_transaction_support |
AUTONOMOUS TRANSACTION语法 |
GaussDB V5R2不支持AUTONOMOUS TRANSACTION语法。此配置用于处理该语法。 |
包、存储过程、函数、触发器 |
- |
large_seq_cycle |
CYCLE IN SEQUENCE语法 |
GaussDB V5R1 不支持CYCLE IN SEQUENCE语法。此配置用于处理该语法。 |
序列 |
- |
udt_support_inside_package |
在包中使用用户自定义类型 |
GaussDB不支持UDT语法。此配置用于处理该语法。 |
包,函数,存储过程 |
- |
insert_record_variable_support |
INSERT语句中使用RECORD VARIABLE语法 |
GaussDB V5R2 不支持INSERT语句中使用RECORD VARIABLE语法。此配置用于处理该语法。 |
包,存储过程,函数 |
- |
forall_support |
FOR ALL语法 |
GaussDB V5R2 不支持FOR ALLSEQUENCE语法。此配置用于处理该语法。 |
包,存储过程,函数 |
- |
rownum_support |
ROWNUM |
GaussDB 3.1 分布式及其以下的版本不支持ROWNUM。此配置用于处理此类型要求。 |
包,存储过程,函数 |
- |
pkg_cursor_variable_support |
游标变量 |
GaussDB V5R2 不支持包规范中定义的游标变量。此配置将处理该类型。 |
包 |
- |
subpartition_support |
Sub分区 |
GaussDB V5R2 部分版本不支持 Sub分区。此配置用于处理该类型。 |
表 |
- |
subpartition_index_support |
索引Sub分区 |
GaussDB V5R2 部分版本不支持索引Sub分区。此配置用于处理该类型。 |
表,索引 |
- |
interval_partition_support |
Interval分区 |
GaussDB V5R2 部分版本不支持Interval分区。此配置用于处理该类型。 |
表 |
- |
hash_partition_support |
Hash分区 |
GaussDB V5R2部分版本不支持Hash分区。此配置用于处理该类型。 |
表 |
- |
alter_synonym_owner |
同义词 |
GaussDB V5R2部分版本不支持同义词。此配置用于处理该类型。 |
同义词 |
- |
any_index_privilege_support |
索引权限 |
.GaussDB V5R2提供权限的语法不同。此配置将处理索引权限。 |
索引 |
- |
any_trigger_privilege_support |
触发器权限 |
GaussDB V5R2 提供权限的语法不同。此配置将处理索引权限。 |
触发器 |
- |
create_any_object_privilege_support |
对象权限 |
GaussDB V5R2提供权限的语法不同。此配置将处理对象权限。 |
所有对象 |
- |
use_user_connection |
用户连接 |
此配置用于设置执行GaussDB V5R2脚本的用户。 |
所有对象 |
- |
sqlplus_unsupported_command |
SQL PLUS |
GaussDB V5R2 不支持SQL PLUS命令。此配置用于处理该请求。 |
SQL PLUS命令 |
Oracle SQL PLUS工具中有一组GaussDB不支持的命令。这将影响文件的创建、更改和显示结果。支持SQL PLUS可避免UGO迁移中引发错误。 GaussDB不直接支持SQL PLUS命令,需要使用GaussDB命令重新编写脚本。 |
unsupported_set_attributes_support |
DBMS_SCHEDULER.SET_ATTRIBUTE |
GaussDB V5R2 不完全支持DBE_SCHEDULER.SET_ATTRIBUTE,该语法等价于Oracle中的DBMS_SCHEDULER.SET_ATTRIBUTE。此配置用于处理该请求。 |
存储过程,函数,触发器,包,作业,调度,程序, 凭证,作业类 |
- |
supported_set_attributes |
GaussDB V5R2支持的SET ATTRIBUTES有利于DBMS_SCHEDULER.SET_ATTRIBUTE的迁移。 |
此配置将包含GaussDB支持的所有SET ATTRIBUTES,有利于迁移Oracle DBMS_SCHEDULER.SET_ATTRIBUTE。 |
存储过程,函数,触发器,包,作业,调度,程序, 凭证,作业类 |
- |
create_db_destination_support |
DBMS_SCHEDULER.CREATE_DATABASE_DESTINATION |
GaussDB V5R2 中没有与Oracle等价的 DBMS_SCHEDULER.CREATE_DATABASE_DESTINATION。此配置用于处理该请求。 |
存储过程,函数,触发器,包,作业,调度,程序, 凭证,作业类 |
- |
authid_support |
PL/SQL对象的AUTHID子句 |
如果未指定AUTHID DEFINER/INVOKER,此配置用于决定是否添加AUTHID DEFINER。GaussDB V5R2C00及以上版本最新版本的默认配置为AUTHID DEFINER,与Oracle配置相匹配。而GaussDB V5R1版本默认配置为AUTHID INVOKER。 |
存储过程,函数,包,类型 |
- |
systemview_case_support |
对象名大小写 |
GaussDB V5R2 以小写字母存储数据库对象,而Oracle以大写字母存储对象。此配置用于处理该请求。 |
系统视图 |
- |
special_character_objectname_support |
含有特殊字符的对象名称大小写转换 |
含有特殊字符的对象名称将根据配置转换大小写 |
表,索引,包,物化视图,函数, 存储过程,触发器,用户自定义类型,视图 |
- |
create_object_privilege_support |
对象级权限 |
GaussDB V5R2 不支持对象级权限。此配置用于处理该请求。 |
系统 |
- |
package_name_same_schema |
包名称 |
包与schema同名 |
包 |
- |
system_privilege_support |
系统权限 |
GaussDB V5R2 不支持系统权限。此配置用于处理该请求。 |
系统 |
- |
mismatch_charset_support |
字符集不匹配 |
源字符集与目标字符集不匹配。此配置用于处理该请求。 |
所有对象 |
- |
src_character_set |
源库字符集 |
此配置用于选择源数据库字符集。 |
所有对象 |
- |
target_character_set |
目标库字符集 |
此配置用于选择目标数据库字符集。 |
所有对象 |
- |