2012-06-26 32 views
1

我能夠在Oracle數據庫中生成表,但它們是在默認表空間上生成的。NHibernate,Oracle和表空間

有誰知道如何指定哪些表空間,他們應該使用NHibernate(或您最喜歡的流利的映射API)創建?

如果我手動創建表(指定創建上的表空間),我可以隨後通過NHibernate和我的C#代碼將數據插入到它們中。

通過NHibernate的生成表,然後嘗試插入數據,我得到以下錯誤:

NHibernate.Exceptions.GenericADOException: could not insert: [Some.Namespace.Core.MyObjectTable#fba3213d-bf7d-11e1-b71d-005056a80403][SQL: INSERT INTO "MyObjectTable" (Col1, Col2, Col3) VALUES (?, ?, ?)] 

隨着內部異常:

System.Data.OracleClient.OracleException: ORA-01950: no privileges on tablespace 'THE_DEFAULT_TABLESPACE' 

肯定有解決的辦法.. 。?我沒有SQL Server的這種問題。

回答

0

您需要在表空間上配額。從DBA的帳戶,您可以爲實例運行下面的語句:

alter user <myuser> quota 5m on tablespace the_default_tablespace; 
+0

謝謝您的回答傢伙,但我真的希望能夠自動生成在給定的表空間中的表,然後將數據插入其中。相反,代碼目前在默認表空間上創建了我沒有特權的表。如果我通過SQL腳本手動創建表格,然後嘗試通過NHibernate插入數據,一切工作正常。但是這打破了ORM的觀點。 –

+0

然後,你需要在創建表格時指定表空間 – steve

+0

這是原始問題。但讓我更具體(我會稍微編輯問題...)。我需要在NHibernate中指定表空間,但迄今爲止所有的嘗試都沒有結果。 –