1
我以SYSTEM用戶身份登錄Oracle XE實例。當我嘗試運行創建用戶,表和約束的腳本時,我得到一個ORA-01031
錯誤。該腳本如下:在不同所有者之間添加外鍵約束
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個不同的父表創建子表 - 如果這些跨模式外鍵的數量不止一個,那麼識別什麼模式的方法很可能你需要的是有問題的。也就是說,你可以編寫一些動態SQL來生成和執行這個狀態的所有770個組合。 –
我剛剛那樣做了。創建動態SQL以生成組合。謝謝你的提示。 – leomcabral