나는 단 하나의 기록을 보장하는 다음 트리거가 필드 기본 카드를 가지고있다 = 1DB2 트리거 시간 초과
create trigger TRG_U_XSTRDCRD
after update on XSTOREDCARD referencing new as N old as O
for each row mode db2sql
begin atomic
if N.DEFAULTCARD = 1 then
update XSTOREDCARD
set DEFAULTCARD = 0
where USERS_ID = N.USERS_ID and ID <> N.ID;
end if;
[email protected]
나는 또한 그래서, 하나의 레코드 만 1의 EBACTIVE 필드 값이 있는지 확인하고 싶습니다 나는 이것을 시도했다.
create trigger TRG_U_XSTRDCRD
after update on XSTOREDCARD referencing new as N old as O
for each row mode db2sql
begin atomic
if N.DEFAULTCARD = 1 then
update XSTOREDCARD
set DEFAULTCARD = 0
where USERS_ID = N.USERS_ID and ID <> N.ID;
end if;
if N.EBACTIVE = 1 then
update XSTOREDCARD
set EBACTIVE = 0
where USERS_ID = N.USERS_ID and ID <> N.ID;
end if;
[email protected]
그러나 그것은 작동하지 않았다, 그것은 업데이트에 대한 몇 분 제한 시간에 결과 :
Caused by: com.ibm.db2.jcc.b.SqlException: DB2 SQL error: SQLCODE: -101, SQLSTATE: 54001, SQLERRMC: null
at com.ibm.db2.jcc.b.zc.e(zc.java:1606)
at com.ibm.db2.jcc.b.zc.a(zc.java:1206)
at com.ibm.db2.jcc.a.db.h(db.java:149)
at com.ibm.db2.jcc.a.db.a(db.java:43)
at com.ibm.db2.jcc.a.r.a(r.java:30)
at com.ibm.db2.jcc.a.sb.g(sb.java:152)
at com.ibm.db2.jcc.b.zc.n(zc.java:1186)
at com.ibm.db2.jcc.b.ad.db(ad.java:1761)
at com.ibm.db2.jcc.b.ad.d(ad.java:2203)
at com.ibm.db2.jcc.b.ad.V(ad.java:521)
at com.ibm.db2.jcc.b.ad.executeUpdate(ad.java:504)
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2595)
... 19 more
을 수행하는 무슨 잘못이나 방법에 대한 조언을?
건배! NFV
정확한 오류 코드와 전체 메시지를 표시하십시오. – mustaccio
SQLCODE -101은 시간 초과가 아닙니다. 그것은 당신이 메모리 한도 또는 다른 리소스 제한을 치고 있다는 것을 의미합니다. DB2 버전 및 플랫폼에 대해 언급하지 않으므로 더 자세한 정보를 제공 할 수는 없습니다. DBA와 상담하십시오. – mustaccio
다음 페이지에서 약간의 힌트가 있습니다. http://www.dbforums.com/db2/978746-sql0954c-not-enough-storage-available-application-heap-process.html –