相关疑难解决方法(0)

为什么Oracle表/列/索引名称限制为30个字符?

我可以理解,很多年前会有这种限制,但现在肯定可以很容易地增加这个限制.我们有对象的命名约定,但总会有一个案例出现在我们达到这个限制的地方 - 特别是在命名外键时.

有人真的知道为什么这不是一个更大的尺寸 - 或者它是否在11g更大?


显然答案是它会破坏当前没有防御编码的脚本.我说这是一个非常令人担忧的事情,甲骨文正在试图成为数据库,想必这是什么样的,你必须不断提高的东西,否则你的产品会死一千削减死亡.

每当我在内部看到这种反对意见时,我认为是时候咬紧牙关并将其解决了.如果人们正在运行在升级Oracle版本时不检查或维护的脚本,那么让他们承受该选择的后果.为他们提供一个兼容性标志,大小达到4000,然后节省我浪费的时间,当我创建必须经常数到30的对象来检查名称是否'OK'.

oracle size oracle10g

147
推荐指数
6
解决办法
8万
查看次数

创建约束时,Exceptions into子句不起作用

我使用的是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

但导致异常的行不在异常表中?

有谁能够帮我.提前致谢

沃尔夫冈

oracle

6
推荐指数
1
解决办法
3667
查看次数

标签 统计

oracle ×2

oracle10g ×1

size ×1