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

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

注释唯一约束(主键和唯一键)。

唯一约束有助于:

  • 避免在表中创建重复记录;
  • 允许创建参照完整性约束(RDS for PostgreSQL增强版不支持);
  • 索引基于唯一键创建,加快搜索记录等数据库操作。

此选项注释掉了唯一约束(主键和唯一键),客户将无法获得上述提到的优势。

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命令。此配置将引发错误。

分享:

    相关文档

    相关产品