Oracle 12.2 长标识符

2022-04-24 09:01:49 浏览数 (1)

Oracle 12.2将大多数标识符的最大大小从30字节增加到128字节,这使得从其他数据库引擎的迁移更容易。

长标识符

在某些时候,每个DBA或开发人员都将遇到一个点,其中对象名称的30个字符限制已导致问题。 当执行从SQL Server或MySQL到Oracle的迁移项目时,此限制可能非常痛苦。 在Oracle Database 12cR2中,大多数标识符的最大长度现在改为128个字符。

代码语言:javascript复制
CREATE TABLE this_is_a_table_to_hold_employees_please_dont_put_customers_in_it (
  this_is_the_primary_key_column_which_uniquely_identifies_the_row  NUMBER,
  this_is_for_the_employee_name_so_dont_put_other_crap_in_it        VARCHAR2(100),
  CONSTRAINT this_is_a_table_to_hold_employees_please_dont_put_customers_in_it_pk
    PRIMARY KEY (this_is_the_primary_key_column_which_uniquely_identifies_the_row)
);

Table created.

SQL>

正如所料,这种变化已经包含了系统的许多方面,包括字典视图和JVM。

代码语言:javascript复制
SQL> desc dba_tables
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 OWNER                                     NOT NULL VARCHAR2(128)
 TABLE_NAME                                NOT NULL VARCHAR2(128)
 TABLESPACE_NAME                                    VARCHAR2(30)
 CLUSTER_NAME                                       VARCHAR2(128)
 IOT_NAME                                           VARCHAR2(128)
 STATUS                                             VARCHAR2(8)
 .
 .
 .
 CONTAINER_MAP_OBJECT                               VARCHAR2(3)

SQL>

向后兼容性

如果你需要支持多个版本的数据库,那么你要避免使用长标识符名称,否则遇到向后兼容性问题。

0 人点赞