• 博客访问: 603097
  • 博文数量: 136
  • 用 户 组: 普通用户
  • 注册时间: 2013-12-07 18:53
  • 认证徽章:
个人简介

Dylan, Oracle ACE-A, 山东Oracle用户组(http://www.sdoug.com)创始人, 从事Oracle开发工作超过7年, 已获得OCM认证并评为Oracle用户组年轻专家(Young Expert Program)。

文章分类

全部博文(136)

文章存档

2016年(16)

2015年(53)

2014年(40)

2013年(27)

分类: Oracle

2016-12-09 23:25:29

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

长标识符

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

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。

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>

向后兼容性

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

阅读(36) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册