Oracle XE 인스턴스에 SYSTEM 사용자로 로그온했습니다. 사용자, 테이블 및 제약 조건을 생성하는 스크립트를 실행하려고하면 ORA-01031
오류가 발생합니다. 스크립트는 다음과 같습니다 :다른 소유자간에 FOREIGN KEY 제약 추가
CREATE USER AA IDENTIFIED BY AA DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;
CREATE USER BB IDENTIFIED BY BB DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;
GRANT ALL PRIVILEGES TO AA WITH ADMIN OPTION;
GRANT ALL PRIVILEGES TO BB WITH ADMIN OPTION;
...
CREATE TABLE ...
CREATE INDEX ...
...
ALTER TABLE "BB"."B_TABLE" ADD CONSTRAINT "FK_BB_AA" FOREIGN KEY ("AA_ID")
REFERENCES "AA"."A_TABLE" ("ID") ENABLE; -- this line report the error
Oracle XE에서이 제약 조건을 추가 할 수 없습니까?
실제 데이터베이스가 아니므로 Oracle XE를 사용하여 응용 프로그램의 통합 테스트를 수행하고 있으며 실제 데이터베이스 서버에 dba 권한이 없습니다. 그리고이 두 명의 사용자 만있는 것은 아니며 11 명의 사용자와 약 70 개의 테이블이 있습니다. 모든 테이블과 사용자에게이 명령을 실행해야합니다. 아니면 더 쉬운 방법이 있습니까? – leomcabral
해당 오브젝트의 하위 테이블을 작성할 수있는 모든 사용자에 대해 모든 오브젝트에 대한 명령문을 실행해야합니다. 11 명의 사용자 각각이 70 개의 다른 상위 테이블을 기반으로 하위 테이블을 생성하는 것은 매우 이상한 것처럼 보일 것입니다. 이러한 십자가 스키마 외래 키가 많지 않은 경우 어떤 스키마를 식별하는지 당신은 문제가있다. 즉,이 상태의 770 가지 조합을 생성하고 실행하는 약간의 동적 SQL을 작성할 수 있습니다. –
방금 했어요. 조합을 생성하는 동적 SQL을 작성했습니다. 팁 고마워. – leomcabral