Oracle -> RDS for PostgreSQL增强版
配置参数 |
参数名称 |
参数说明 |
影响对象 |
参数值 |
值描述 |
备注 |
---|---|---|---|---|---|---|
longraw_support |
long raw数据类型 |
适用于包含LONG RAW列的表。Oracle中, LONG RAW数据类型最大可存储2GB数据。RDS for PostgreSQL增强版中,BYTEA数据类型可存储的数据大小是变化的。 |
表,函数,存储过程,触发器,用户定义类型 |
IGNORE |
不转换LONG RAW类型。(默认值) |
RDS for PostgreSQL增强版不支持LONG RAW数据类型,该数据类型保持不变。RDS for PostgreSQL增强版迁移脚本编译失败。 |
BYTEA |
将LONG RAW转换为BYTEA数据类型。 |
Oracle中, LONG RAW数据类型最大可存储2GB数据,但RDS for PostgreSQL增强版中,BYTEA数据类型可存储的数据大小是变化的。RDS for PostgreSQL增强版中没有等价的LONG RAW数据类型。如果表列数据超出限制,数据更改操作(INSERT/UPDATE)将失败并引发错误。 |
||||
long_datatype_show_error |
支持LONG数据类型 |
如果数据库对象包含LONG数据类型,则此配置适用。在Oracle中,LONG数据类型的最大大小为2 GB。 RDS PG 11.5中的长数据类型最多支持1 GB数据。 |
表,函数,存储过程, 触发器,用户定义的类型 |
TRUE |
LONG数据类型将不会转换,LONG数据类型将保持原样,并且将使用错误消息更新用户。(默认值) |
如果Oracle支持LONG数据类型的2GB数据。 RDS PG 11.5支持LONG数据类型,但是它在内部将LONG转换为TEXT数据类型。如果表列中的数据超出1 GB的大小限制,则数据更改(INSERT / UPDATE)将失败并引发错误。 |
FALSE |
LONG数据类型将不会转换,LONG数据类型将保持原样,并且不会使用错误消息更新用户。 |
如果表列中的数据超出了LONG类型限制(1 GB)的大小,则将引发错误。 |
||||
float_support |
float数据类型 |
适用于包含FLOAT列的表,且FLOAT指定为FLOAT/FLOAT(n),其中n > 53。如果n未被指定,默认值为126。 |
表,函数,存储过程,触发器,用户定义类型 |
IGNORE |
不转换FLOAT数据类型。(默认值) |
RDS for PostgreSQL增强版支持FLOAT数据类型。在Oracle中,FLOAT默认精度(最大精度)为126。在RDS for PostgreSQL增强版中,FLOAT精度高于53将引发错误,语句执行失败。 |
NUMBER |
将FLOAT/FLOAT(n)转换为NUMBER。 |
RDS for PostgreSQL增强版中,如果没有指定精度,Number数据类型在小数点前的最大位数为131072位,在小数点后的最大位数为16383位。RDS for PostgreSQL增强版在内部将NUMBER转换为NUMERIC类型。存储的数值更准确。 |
||||
DOUBLE PRECISION |
将FLOAT/FLOAT(n)转换为DOUBLE PRECISION。 |
RDS for PostgreSQL增强版支持DOUBLE PRECISION类型,但在内部将其转换为float8类型。float8是4字节浮点数。 |
||||
number_with_zero_scale |
小数位数为零的数字数据类型 |
适用于包含小数位数为零或无小数位数的数字数据类型的表。 |
表,函数,存储过程,触发器,用户定义类型 |
IGNORE |
不转换NUMBER类型。RDS for PostgreSQL增强版支持NUMBER,但内部将其转换为NUMERIC。(默认值) |
不转换NUMBER。RDS for PostgreSQL增强版支持NUMBER。该选项中,迁移精度精确。 |
INT |
如果NUMBER精度介于1和4之间,则被转换为SMALLINT类型。 如果NUMBER精度介于5和9之间,则被转换为INT类型。 如果NUMBER精度介于10和18之间,则被转换为BIGINT类型。 |
如果输入的是整数,INTEGER是更好的选择以提高性能。在该选项中,迁移精度不是很精确。 |
||||
SDO_GEOMETRY |
SDO_GEOMETRY对象类型 |
适用于包含SDO_GEOMETRY对象类型的表 |
表,函数,存储过程,触发器,用户定义类型 |
IGNORE |
不转换SDO_GEOMETRY对象类型。(默认值) |
RDS for PostgreSQL增强版不支持SDO_GEOMETRY数据类型,该数据类型保持不变。RDS for PostgreSQL增强版迁移脚本编译失败,用户需要手动修改。 |
TEXT |
将SDO_GEOMETRY对象类型转换为TEXT数据类型。 |
RDS for PostgreSQL增强版中没有SDO_GEOMETRY的等价数据类型。更正DML语句,以TEXT格式存储数据,并将数据提取到不同的对象属性中。 |
||||
MBRCOORDLIST |
MDSYS.MBRCOORDLIST对象类型 |
适用于包含MDSYS.MBRCOORDLIST对象类型的表脚本。 |
表,函数,存储过程,触发器,用户定义类型 |
IGNORE |
不转换MBRCOORDLIST对象类型。(默认值) |
RDS for PostgreSQL增强版不支持MBRCOORDLIST数据类型,该数据类型保持不变。RDS for PostgreSQL增强版迁移脚本编译失败,用户需要手动修改。 |
TEXT |
将MBRCOORDLIST对象类型转换为TEXT数据类型。 |
RDS for PostgreSQL增强版中没有MBRCOORDLIST的等价数据类型。更正DML语句,以TEXT格式存储数据,并将数据提取到不同的对象属性中。 |
||||
GEOMETRY |
GEOMETRY对象类型 |
适用于包含GEOMETRY对象类型的表脚本。 |
表,函数,存储过程,触发器,用户定义类型 |
IGNORE |
不转换GEOMETRY对象类型。(默认值) |
RDS for PostgreSQL增强版不支持GEOMETRY数据类型,该数据类型保持不变。RDS for PostgreSQL增强版迁移脚本编译失败,用户需要手动修改。 |
TEXT |
将GEOMETRY类型转换为TEXT数据类型。 |
RDS for PostgreSQL增强版中没有GEOMETRY的等价数据类型。更正DML语句,以TEXT格式存储数据,并将数据提取到不同的对象属性中。 |
||||
partition_columns_with_unique_constraint |
唯一约束的表列分区 |
适用于包含分区语法以及主键或唯一键的表脚本。 |
表,索引 |
0 |
忽略迁移。(默认值) |
此选项忽略迁移。RDS for PostgreSQL增强版迁移脚本编译失败,用户需要手动修改。 |
1 |
注释分区语法。 |
通过提高性能、可管理性和可用性,分区可以为应用程序提供许多优势。由于此选项注释掉了分区语法,因此该表将成为普通表(而不是分区表),并且客户将无法获得上面指定的分区优势。 |
||||
2 |
注释唯一约束(主键和唯一键)。 |
唯一约束有助于:
此选项注释掉了唯一约束(主键和唯一键),客户将无法获得上述提到的优势。 |
||||
3 |
将分区键添加到唯一约束(主键和唯一键)中。 |
此选项将分区列添加到唯一约束(主键和唯一键)中,因此可能在表中创建重复记录。 |
||||
mig_interval_partition |
表间隔分区 |
适用于包含INTERVAL分区语法的表脚本。 |
表 |
IGNORE |
不转换INTERVAL分区语法。(默认值) |
RDS for PostgreSQL增强版不支持INTERVAL分区语法,该语法保持不变。RDS for PostgreSQL增强版迁移脚本编译失败,用户需要手动修改。 |
COMMENT |
注释INTERVAL分区语法。 |
INTERVAL分区语法将被注释掉,客户将无法获得分区在性能、可管理性和可用性等方面的优势。 |
||||
on_null_support |
DEFAULT ON NULL子句 |
适用于包含DEFAULT ON NULL关键字的表脚本。DEFAULT ON NULL子句强制将列设置为默认值,即使INSERT语句中显式包含空值。 |
表 |
IGNORE |
不转换DEFAULT ON NULL关键字。(默认值) |
RDS for PostgreSQL增强版不支持DEFAULT ON NULL子句,该子句保持不变。RDS for PostgreSQL增强版迁移脚本编译失败,用户需要手动修改。 |
COMMENT |
注释ON NULL关键字。 |
RDS for PostgreSQL增强版不支持DEFAULT ON NULL子句,该子句被注释掉。如果NULL是显示,则应更改DML以存储适当的值。 |
||||
generated_identity_support |
IDENTITY列 |
适用于包含IDENTITY列,且该列使用GENERATED AS IDENTITY的表脚本。 |
表,序列 |
IGNORE |
不转换IDENTITY列。(默认值) |
RDS for PostgreSQL增强版不支持GNERATED AS IDENTITY语法,该语法保持不变。RDS for PostgreSQL增强版迁移脚本编译失败,用户需要手动修改。 |
SERIAL |
将Oracle的IDENTITY列转换为序列号类型。 |
序列号数据类型为四字节自增整数。取值范围为1至2147483647。超过这个上限,RDS for PostgreSQL增强版将报错,DML语句执行失败。 |
||||
SMALL SERIAL |
将Oracle的IDENTITY列转换为小序列号类型。 |
小序列号数据类型是两个字节的自增整数。取值范围为1至32767。超过这个上限,RDS for PostgreSQL增强版将报错,DML语句执行失败。 |
||||
BIG SERIAL |
将Oracle的IDENTITY列转换为大序列号类型。 |
大序列号数据类型是8字节自增整数,取值范围是1至9223372036854775807。超过这个上限,RDS for PostgreSQL增强版将报错,DML语句执行失败。 |
||||
DEFAULT_SEQ |
创建序列,并将其作为默认值。 |
支持的最大值和最小值为 263-1和-263-1。超出限制, RDS for PostgreSQL增强版将报错,DML语句执行失败。 |
||||
read_only_table |
表的只读关键字 |
适用于包含“read only”关键字的表脚本。Oracle中,执行ALTER TABLE命令将表标记为只读。当表处于只读模式时,不允许执行任何试图修改表数据的操作。 |
表 |
IGNORE |
不转换READ ONLY关键字。 |
RDS for PostgreSQL增强版不支持READ ONLY关键字,该关键字保持不变。RDS for PostgreSQL增强版迁移脚本编译失败,用户需要手动修改。 |
COMMENT |
注释alter table语句中的READ ONLY关键字。(默认值) |
RDS for PostgreSQL增强版不支持READ ONLY关键字,该关键字被注释掉。此语句一般不会在应用程序脚本中使用,而会在数据库维护中会使用。创建触发器来处理READ ONLY。 |
||||
TRIGGER |
创建触发器,支持READ ONLY模式。 |
创建触发器,支持READ ONLY模式。 |
||||
bitmap_index |
bitmap索引 |
适用于包含BITMAP关键字的create index语句。 |
索引 |
0 |
不转换BITMAP索引关键字。(默认值) |
RDS for PostgreSQL增强版不支持BITMAP索引,该索引保持不变。RDS for PostgreSQL增强版迁移脚本编译失败,用户需要手动修改。 |
1 |
注释BITMAP索引。 |
RDS for PostgreSQL增强版不支持BITMAP索引,该索引被注释掉。在搜索条件中使用索引列时,可能会引起性能问题。因此,用户应该创建合适的索引。 |
||||
2 |
创建BTREE索引,而不是BITMAP索引。 |
BITMAP索引通常用于具有大量重复值(低基数)的列,而BTREE索引适合于高基数列。RDS for PostgreSQL增强版中没有与BITMAP索引完全相符的等价索引,因此可以使用BTREE索引继续操作。 |
||||
3 |
创建HASH索引,而不是BITMAP索引。 |
RDS for PostgreSQL增强版中没有与BITMAP索引完全相符的等价索引。如果索引列仅在使用 = operator比较时使用,可以使用HASH索引。 |
||||
reverse_support |
索引语句中使用REVERSE关键字 |
适用于包含REVERSE关键字的create index语句。 |
索引 |
IGNORE |
不转换REVERSE关键字。(默认值) |
RDS for PostgreSQL增强版不支持REVERSE索引,该索引保持不变。RDS for PostgreSQL增强版迁移脚本编译失败,用户需要手动修改。 |
COMMENT |
注释REVERSE关键字。 |
RDS for PostgreSQL增强版不支持REVERSE索引。该索引关键词被注释掉,转换为RDS for PostgreSQL增强版支持的普通索引。RDS for PostgreSQL增强版中没有与REVERSE索引完全相符的等价索引,可以使用正常的BETREE树索引进行操作。 |
||||
viewEditioning |
编辑视图 |
适用于包含EDITIONING关键字的视图脚本。Oracle允许在编辑视图中创建DML触发器。 |
视图 |
0 |
不转换EDITIONING关键字。(默认值) |
RDS for PostgreSQL增强版不支持EDITIONING关键字,该关键字保持不变。RDS for PostgreSQL增强版迁移脚本编译失败,用户需要手动修改。如果在视图中创建了DML触发器,应该在不影响业务逻辑的基础上,在基表中重写该触发器。 |
1 |
注释视图语句中的EDITIONING关键字。 |
RDS for PostgreSQL增强版不支持EDITIONING关键字,该关键词被注释掉。如果在视图中创建了DML触发器,应该在不影响业务逻辑的基础上,在基表中重写该触发器。 |
||||
seq_max_min_value |
超出限制的序列值 |
适用于包含MAXVALUE/ MINVALUE的序列脚本。 |
序列,表 |
0 |
不改变MINVALUE / MAXVALUE值,即使该值超出下限/上限(-9223372036854775808至 9223372036854775807)。(默认值) |
Oracle支持的MAXVALUE和MINVALUE分别为1027和-1026。如果输入的序列的MINVALUE / MAXVALUE超出范围(-9223372036854775808至9223372036854775807) ,会导致RDS for PostgreSQL增强版迁移脚本编译失败,用户需要手动修改。 |
1 |
如果序列的MINVALUE / MAXVALUE超出了限制范围(-9223372036854775808至9223372036854775807),替换为边界值。 |
如果输入的序列的MINVALUE / MAXVALUE超出范围(-9223372036854775808至9223372036854775807),替换为边界值。生成的序列值不会超出RDS for PostgreSQL增强版的序列范围。 |
||||
otherthan_gregorian |
GREGORIAN以外的日历类型 |
适用于包含除GREGORIAN外日历类型的TO_DATE函数。 |
表 |
0 |
如果指定了除GREGORIAN日历外的第三个参数,不注释GREGORIAN日历。(默认值) |
RDS for PostgreSQL增强版只支持GREGORIAN日历,以及TO_DATE和TO_TIMESTAMP中的两个参数。Oracle中,如果 TO_DATE函数中指定了除GREGORIAN日历外的第三个参数,则GREGORIAN日历不会被注释。RDS for PostgreSQL增强版迁移脚本编译失败,用户需要手动修改。 |
1 |
如果指定了除GREGORIAN日历外的第三个参数,注释GREGORIAN日历。 |
Oracle中,如果 TO_DATE函数中指定了除GREGORIAN日历外的第三个参数,则GREGORIAN日历被注释掉。RDS for PostgreSQL增强版迁移脚本编译成功。 |
||||
object_name_combiner |
object_name_combiner参数 |
适用于包含schema名的创建索引脚本,或包含分区语法的创建表脚本。 |
函数,存储过程,触发器 |
$ |
此参数用于合并: -创建索引中的schema名和索引名 -创建分区表中的表名和分区名 |
示例分隔符为;$,#或_ 该参数最多包含4个字符,不允许包任何其他特殊字符。 |
default_schema |
设置默认schema名称 |
适用于创建数据库对象时,没有给定schema名称的情况。 |
schema |
- |
将未指定schema名称的数据库对象设置为默认schema。 |
由用户设置为默认schema。schema名称不应为空。 |
varray_size |
PL/SQL表 |
适用于PL/SQL表在存储过程、函数和包中使用的情况。 |
包,函数,存储过程 |
1024 |
变量大小可根据需求更改。 |
RDS for PostgreSQL增强版不支持表类型,所以PL/SQL表会转换为VARRAY。对性能无影响。 |
package_name_delimiter |
设置包名分隔符 |
适用于包含创建包的脚本。 |
函数,触发器,存储过程 |
$ |
此参数用于Oracle 包迁移。用户应设置分隔符,使其组成包的子对象名。 |
包转换的分隔符。例如,指定$作为分隔符,则包中指定的存储过程/函数名称会被转换为packageName$procedureName或packageName$functionName。 示例分隔符为:$,#或_ 分隔符字符串最多可为4个字符。DOT(.)和任何其他特殊字符不可用于此分隔符。 |
comment_commit |
COMMIT/ROLLBACK关键字 |
适用于包含COMMIT/ROLLBACK语句的存储过程/函数。 |
存储过程 |
FALSE |
不转换COMMIT/ROLLBACK语句。(默认值) |
RDS for PostgreSQL增强版中,存储过程/函数内不支持COMMIT & ROLLBACK,会导致存储过程/函数操作执行失败。用户应采取适当措施避免操作失败。 |
TRUE |
注释COMMIT/ROLLBACK语句。 |
RDS for PostgreSQL增强版中,存储过程/函数内不支持COMMIT & ROLLBACK,COMMIT & ROLLBACK语句被注释掉。用户应更正PL/SQL代码,确保业务逻辑,特别是ROLLBACK逻辑不受影响。 |
||||
comment_tablespace |
表空间 |
适用于包含TABLESPACE子句的create table和create index语句。 |
表空间,表 |
FALSE |
不转换表空间子句。(默认值) |
RDS for PostgreSQL增强版在create table和create index语句中支持表空间子句。但是,如果指定的表空间在RDS for PostgreSQL增强版中不存在,则create table和create index语句执行失败。在编译RDS for PostgreSQL增强版迁移脚本之前,用户应创建所需的表空间。 |
TRUE |
注释表空间子句。 |
表空间子句被注释掉,创建表/索引时将使用默认表空间。 |
||||
pkg_naming |
包 |
适用于包,允许将包作为schema或允许将包名称与存储过程和函数名称合并。 |
包 |
pkg_as_schema |
将包转换为schema。 |
RDS for PostgreSQL增强版不支持包,包存储过程和函数将被转换为独立的存储过程和函数。这些对象将创建在与包名同名的schema中,且不是包的一部分,这可能会影响性能。 |
merge_pkg_plnames |
将包与plnames合并。(默认值) |
RDS for PostgreSQL增强版不支持包,包存储过程和函数被转换为独立存储过程,包名将与plnames合并。由于它不是包的一部分,可能会影响性能。 |
||||
global_temp_table_support |
全局临时表 |
适用于包含GLOBAL TEMPORARY关键字的表脚本。全局临时表是一个永久的数据库对象,即使会话断开,表结构也会保留在数据库中。本地临时表仅仅对当前会话可用,一旦会话断开,该表就会被删除。RDS for PostgreSQL增强版只支持本地临时表。 |
表 |
0 |
不转换GLOBAL关键字。(默认值) |
无论指定创建全球临时表还是本地临时表,PostgreSQL都只会创建本地临时表。如果临时表不存在,则应手动创建该表。 |
1 |
创建本地临时表。 |
将全局临时表转换为本地临时表,即创建本地临时表,而不是全局临时表。如果临时表不存在,应该手动创建该表。 |
||||
grant_support |
GRANT |
对象权限 |
表, 视图,索引,存储过程,函数 |
ignore |
不转换GRANT语句,脚本保留原样。(默认值) |
RDS for PostgreSQL增强版有单独的授予权限的方式。此配置将忽略迁移,脚本将保留原样。 |
comment |
注释整个GRANT语句。 |
RDS for PostgreSQL增强版有单独的授予权限的方式。此配置将注释整个GRANT语句。 |
||||
sqlplus_unsupported_command |
SQL PLUS |
RDS for PostgreSQL增强版不完全支持SQL PLUS命令。此配置用于处理此类型要求。 |
SQL PLUS commands |
IGNORE |
忽略迁移,脚本保留原样。 |
RDS for PostgreSQL增强版不支持SQL PLUS命令。此配置将忽略脚本。 |
COMMENT |
注释SQL PLUS命令。(默认值) |
RDS for PostgreSQL增强版不支持SQL PLUS命令。此配置将注释脚本。 |
||||
ERROR |
引发错误。 |
RDS for PostgreSQL增强版不支持SQL PLUS命令。此配置将引发错误。 |