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