我可以理解,很多年前会有这种限制,但现在肯定可以很容易地增加这个限制.我们有对象的命名约定,但总会有一个案例出现在我们达到这个限制的地方 - 特别是在命名外键时.
有人真的知道为什么这不是一个更大的尺寸 - 或者它是否在11g更大?
显然答案是它会破坏当前没有防御编码的脚本.我说这是一个非常令人担忧的事情,甲骨文正在试图成为该数据库,想必这是什么样的,你必须不断提高的东西,否则你的产品会死一千削减死亡.
每当我在内部看到这种反对意见时,我认为是时候咬紧牙关并将其解决了.如果人们正在运行在升级Oracle版本时不检查或维护的脚本,那么让他们承受该选择的后果.为他们提供一个兼容性标志,大小达到4000,然后节省我浪费的时间,当我创建必须经常数到30的对象来检查名称是否'OK'.
我使用的是Oracle 11g.
我有一张桌子:
create table test (one number(2), two number(2));
Run Code Online (Sandbox Code Playgroud)
共有2行:
insert into test (one, two) values (1, 1);
insert into test (one, two) values (2, null);
commit;
Run Code Online (Sandbox Code Playgroud)
现在我创建一个例外表:
create table exceptions(row_id rowid,
owner varchar2(30),
table_name varchar2(30),
constraint varchar2(30));
Run Code Online (Sandbox Code Playgroud)
现在我想创建测试的主键:
alter table test add constraint test_pk primary key (one, two) exceptions into exceptions;
Run Code Online (Sandbox Code Playgroud)
当然我收到以下错误:ORA-01449
但导致异常的行不在异常表中?
有谁能够帮我.提前致谢
沃尔夫冈