最近我在我的Web应用程序中遇到了这个错误:
java.lang.OutOfMemoryError:PermGen空间
这是在Tomcat 6和JDK 1.6上运行的典型Hibernate/JPA + IceFaces/JSF应用程序.显然,重新部署应用程序几次后就会发生这种情况.
导致它的原因以及可以采取哪些措施来避免它?我该如何解决这个问题?
这是我在Oracle数据库(10g)中运行的一个小实验.除了(Oracle的)实现方便之外,我无法弄清楚为什么有些插入被接受而其他插入被拒绝.
create table sandbox(a number(10,0), b number(10,0));
create unique index sandbox_idx on sandbox(a,b);
insert into sandbox values (1,1); -- accepted
insert into sandbox values (1,2); -- accepted
insert into sandbox values (1,1); -- rejected
insert into sandbox values (1,null); -- accepted
insert into sandbox values (2,null); -- accepted
insert into sandbox values (1,null); -- rejected
insert into sandbox values (null,1); -- accepted
insert into sandbox values (null,2); -- accepted
insert into sandbox values (null,1); -- rejected
insert into sandbox values …Run Code Online (Sandbox Code Playgroud) 我想在Oracle 10g中创建一个可延迟的唯一功能索引.
我知道如何创建一个独特的功能索引:
create unique index LIST_ITEM_ENTRY_NO_UNIQ
on LIST_ITEM (case status when 'cancel' then null else LIST_KEY end,
case status when 'cancel' then null else ENTRY_NO end);
Run Code Online (Sandbox Code Playgroud)
我知道如何创建一个可延迟的唯一索引:
alter table LIST_ITEM add constraint LIST_ITEM_ENTRY_NO_UNIQ
unique (LIST_KEY,ENTRY_NO) deferrable initially deferred;
Run Code Online (Sandbox Code Playgroud)
知道这两件事,我试过这个:
alter table LIST_ITEM add constraint LIST_ITEM_ENTRY_NO_UNIQ
unique (case STATUS when 'cancel' then null else LIST_KEY end,
case STATUS when 'cancel' then null else ENTRY_NO end)
deferrable initially deferred;
Run Code Online (Sandbox Code Playgroud)
但是我收到"ORA-00904:无效标识符"错误.要么我的语法错误,要么Oracle不支持可延迟的功能索引?有人可以给我一个解决方案或一个明确的答案吗?
oracle ×2
constraints ×1
exception ×1
indexing ×1
java-6 ×1
memory-leaks ×1
null ×1
nullable ×1
ora-00904 ×1
permgen ×1
unique ×1
unique-index ×1