Oracle 12C R2-新特性-更长的标识符
在Oracle 12.2中增加了最大的标识符长度,从30字节增加到128字节。
1 长标识符
可能每个DBA或者开发人员都遇到过这样痛苦的情况,就是对象的名称有时候允许的字节数太少,无法满足命名规则的要求,只能强行缩写。这个对于数据库直接迁移数据最为痛苦,比如MYSQL,SQLSERVER,ORACEL之间迁移数据,就会收到这个限制。但是在ORACLE 12.2中这个长度增加到了128个字符。正常情况绝对够用了。
举个例子:
--创建一个表
SQL>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>
这么长的表名和字段名,在之前版本中使无法创建的。都会报错。
相关的字典视图也已经体现了。
如:
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>
注意:如果你同时使用多个版本的数据库,要避免使用过长的对象名,否则会造成数据库之间的不兼容。
如果数据库版本是12.2或者更高,那么对象名称必须是1到128字节,但是下面情况除外:
·数据库的名称被限制为最大8个字节
·磁盘组,PDB,回滚段,表空间和表空间集的名称被限制为最大30个字节。
如果数据库版本是12.2之前,那么对象名称必须是1到30字节,但是下面情况除外:
·数据库的名称限制为8个字节。
·数据库链接的名称可以长达128个字节。
官方文档:http://docs.oracle.com/database/122/SQLRF/Database-Object-Names-and-Qualifiers.htm#SQLRF51129
版权声明:本文为博主原创文章,未经博主允许不得转载。
标识符