[20170618]12c 支持更长的 identifiers

[20170618]12c 支持更长的 identifiers.txt

--//12c 支持更长的索引与表名,带来的问题就是sqlplus显示混乱.太长了.
--//必须有一个方法改变显示列的宽度.

SCOTT@test01p> @ ver1
PORT_STRING                    VERSION        BANNER                                                                               CON_ID
------------------------------ -------------- -------------------------------------------------------------------------------- ----------
IBMPC/WIN_NT64-9.1.0           12.1.0.1.0     Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production              0

--//我当前的版本还不支持长表名.参考链接:http://blog.itpub.net/267265/viewspace-1991846/
--//在那个链接里,我已经提到oracle将来会支持更长的表名.

--//实际上这个带来的问题还有许多,比如目前使用的一些工具比如toad,PLSQLDev等等.还有一些执行计划的显示在sqlplus(居然没有人测试这样的情况^_^).

--//为了目前在sqlplus能很好的显示,我建立一个文本重新定义长度20.

SELECT DISTINCT 'column ' || column_name || ' format a20;' result
    FROM dba_tab_cols
   WHERE data_type = 'VARCHAR2' AND data_length = 128
ORDER BY 1;

--//把输出保存下来128.txt,修改glogin.sql文件,加入如下:
@@128.txt

--//执行前:
SCOTT@test01p> select index_name, status,orphaned_entries from dba_indexes where owner=user and index_name='INDEX1';
INDEX_NAME                                                                                                                       STATUS   ORP
-------------------------------------------------------------------------------------------------------------------------------- -------- ---
INDEX1                                                                                                                           VALID    NO

--//前后对比就很明显了.

SCOTT@test01p> select index_name, status,orphaned_entries from dba_indexes where owner=user and index_name='INDEX1';
INDEX_NAME           STATUS               ORP
-------------------- -------------------- ---
INDEX1               VALID                NO

--//不过也带来另外的问题,明显status加宽了,暂时凑合吧.

--//找到一个链接,可以限制identifiers长度不要大于30.
--//www.toadworld.com/platforms/oracle/b/weblog/archive/2017/02/07/oracle-12-2-new-feature-longer-object-column-names
create or replace trigger ddl_trigger
before create or alter on demo.SCHEMA
declare
   l_obj   varchar2(128);
   l_dba   int;
begin
   l_obj := ora_dict_obj_name;
   select count(*)
   into l_dba
   from dba_role_privs
   where grantee = USER
   and granted_role = 'DBA';
   if l_dba = 0 and length(l_obj) > 30 then
      raise_application_error(-20000,'Identifier "'||l_obj||'" is too long');
   end if;
end;

--//测试看看:(这里测试>20,另外我的scott用户有dba权限)
create or replace trigger ddl_trigger
before create or alter on scott.SCHEMA
declare
   l_obj   varchar2(128);
   l_dba   int;
begin
   l_obj := ora_dict_obj_name;
   if length(l_obj) > 20 then
      raise_application_error(-20000,'Identifier "'||l_obj||'" is too long');
   end if;
end;
/

SCOTT@book> create table t1234567890123456789011 (a number);
create table t1234567890123456789011 (a number)
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-20000: Identifier "T1234567890123456789011" is too long
ORA-06512: at line 7

SCOTT@book> create table t123 (a number);
Table created.

SCOTT@book> create index i_t12345678901234567890 on t123(a);
create index i_t12345678901234567890 on t123(a)
                                        *
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-20000: Identifier "I_T12345678901234567890" is too long
ORA-06512: at line 7

SCOTT@book> alter table t123 rename column a to a12345678901234567890;
Table altered.

--//^_^,有点问题,并没有限制字段的宽度.仅仅做一个记录也许以后有用!!

时间: 2024-09-21 02:31:59

[20170618]12c 支持更长的 identifiers的相关文章

iPhone5最为期待20项功能:电池续航时间更长

导语:尽管iPhone 4的神秘面纱才刚刚被揭开,对下一代iPhone的猜测就已经开始了.日前,CNET的执行主编大卫·卡诺伊(David Carnoy)发文指出iPhone 5最令人期待的20项功能,并按其重要性进行了排序,同时还附上了对实现可能性的预测. 以下是文章的摘要: 20.内置红外线 将iPhone作为通用遥控器是个不错的注意,但是每次都得使用IR Dongle 的话就太麻烦了.(注:IR Dongle是一款iPhone外设,将其直接插在 iPhone 底部,然后配合一个与iPhon

云狐董德福:专注极限运动与运动健康 让长板更长

云狐手机董事长董德福(TechWeb配图)很多户外运动爱好者或旅行爱好者都知道一款手机--云狐手机.前者知道它是因为这个品牌的手机在这个族群中非常流行,口口相传,而后者知道它是因为他们经常乘坐高铁.飞机等交通工具,总能在这些交通工具提供的杂志上或旅游卫视上看到这款产品的身影. 云狐手机正是一款定位在户外人群的手机.而与手机的名气比起来,人们可能对这个品牌背后的公司知之甚少.近期有消息称云狐6英寸六防手机A8不久将面世,而在这款产品上市之前我们受邀来到云狐手机位于北京的总部,来到了云狐手机研发和设

CSS3让网页更富于表现和支持更复杂布局

文章简介:CSS3 Region:基于HTML和CSS3的富页面布局. 译自:CSS3 regions: Rich page layout with HTML and CSS3中文:CSS3 Region:基于HTML和CSS3的富页面布局请尊重版权,转载请注明来源,多谢! 互联网已经成为一个提供参考.教材.新闻.文章和交互应用的大宝库了.然而,当为印刷设计内容时,一些功能显然仍然不可能或者很难使用Web标准来实现. 印刷出版物正在探索更好的方法来转换或者改变他们的内容以适应富数字格式.我们也看

SEO的困惑 期望SEOer的道路走得更长

做谷歌搜索的seoer在笑做百度seoer,说:嘿嘿,你们辛辛苦苦拼死拼活换链接,发外链,做站内,好不容易关键词上去了吧,网站被K了,而且都没提前给个信.左检查右检查没发现网站有啥对不住百度对不住人民的地方,隔三差五的投诉,百度就是不鸟你.如今能做的就是等啊,等啊等.一天天的感觉希望越来越渺茫...出了个360搜索,以为有了拯救自己的救星,结果要么360不收录自己的站,要么就没得排名,再加上流量一直都以百度为主,360有排名的也基本没多大改观. 从此失业的失业,唾弃的唾弃,seoer们纷纷投入[

如何使HIFI音响的寿命更长?

一套HIFI器材价格不菲,如何使其使用寿命更长?下面就是一些音响日常维护和使用的基本常识. 首先,注意温度.任何电子元器件都有自己的正常工作温度.音响器材正常的工作温度应该为18到45摄氏度.温度过高容易烧坏元器件或使元器件提早老化,过低则会降低某些机器(如电子管机)的灵敏度.但作为居家使用低于20度的时候不多,所以我们更要注意的就是温度高问题.比如,切忌阳光直射,也要避免靠近热源(比如暖气),夏天时更要特别注意降温和保持空气流通,同时做好除尘工作,尘土积聚不美观不说,同样影响器材散热. 其次,

win7电脑中如何让硬盘使用的时间更长?

  在最新win7系统下载中,或者说是在所有的电脑中,都有一个缺一不可的设备,它便是硬盘了,不管是咱们安装系统还是存放数据或者是下载程序软件所需要的空间,都是咱们的硬盘提供的,所以说,没有硬盘,电脑就是无法实现操作和使用的,咱们在保护电脑的时候也需要尽力的保护咱们的硬盘,只有这样,才能让电脑使用的时间更长,那么如何才能让硬盘使用得更久呢?下面,小编就详细的为大家介绍一下吧! 1.首先,要保护硬盘,要想让硬盘使用的时间更久,咱们就必须少使用诸如P2P一类的软件,更不要经常格式化硬盘,这样的操作对于

如何在Linux中让sudo密码会话的超时更长些

在最近的文章中,我们向你展示了 在 Linux 中设置 sudo 的十条 sudoers 实用配置]1以及让 sudo 在你输入错误的密码时"嘲讽"你,在本文中,我们发现了另一个 sudo 贴士,在 Ubuntu Linux 中使 sudo 密码会话(超时)更长或更短. 在 Ubuntu 及其衍生版如 Linux Mint 或任何其他基于 Ubuntu 的发行版中,当你执行 sudo 命令 时,它将提示你输入管理密码. 在第一次执行 sudo 命令后,默认情况下密码将保持 15 分钟,

俞渝:我想让当当继续90年甚至更长

中国经济时报■侯美丽贝索斯用世界上最长的河来为自己的网站命名,确实是前无古人,可是大小通吃害其"消化不良":王峻涛用世界上最高的山来为自己的网站命名,号称从茶叶末到电脑都卖,最后却是人去楼空.而俞渝给自己的网站取名"当当",就像中国传统的父母为自己孩子取的乳名一样,简单,朴素,琅琅上口,寄希望于孩子平安健康成长.俞渝也坦言,当当就像是自己的"儿子".11岁的"儿子"虽然已经成绩斐然,但正是长身体的时候,做"妈妈&qu

今年电商大战的战线拉得更长

摘要: 与以往不同,今年电商大战的战线拉得更长.竞争范围不仅限于本行业,而是跨平台开战. 按照惯例,每年8月是电商企业价格战白热化的时间.但今年的8月却被业界评价为最低调.最 与以往不同,今年电商大战的战线拉得更长.竞争范围不仅限于本行业,而是跨平台开战. 按照惯例,每年8月是电商企业价格战白热化的时间.但今年的8月却被业界评价为最低调.最无火药味的决战日.经过几年的洗牌,电商行业已经脱离凭价格战吸引眼球并争夺市场占有率的宿命,取而代之的是,随着电商列强的诞生,继而与互联网其他主流业态的融合度越