Oracle異常:Caused by: java.sql.SQLException: ORA-01536: 超出表空間 '登入名' 的空間限額 (JPA儲存資料)
阿新 • • 發佈:2018-12-03
原因: Oracle表空間為0,沒有分配空間記憶體.
解決辦法在程式碼框裡:
1. 檢視使用者表空間的限額 select * from user_ts_quotas; max_bytes欄位就是了 -1是代表沒有限制,其它值多少就是多少了. 2. 不對使用者做表空間限額控制: GRANT UNLIMITED TABLESPACE TO ***(使用者);
----------------------------------------------------------------------------------------------------------------------
這種方式是全域性性的.
或者
alter user ***(使用者名稱) quota unlimited on ***(表空間);
這種方式是針對特定的表空間的.
可以分配自然也可以回收了:
revoke unlimited tablespace from ***(使用者)
或者
alter user *** quota 0 on ***
ps:
表空間的大小與使用者的配額大小是兩種不同的概念。表空間的大小是指實際的使用者表空間的大小,而配額大小指的是使用者指定使用表空間的的大小 把表空間檔案增大,還是出現這個問題,使用者在使用表空間的同時使用空間的限額,如果超出限制,就算有空的地方,也不會讓使用者使用。 遇到ORA-01536錯誤,首先要檢視使用者的表空間的限額 select * from dba_ts_quotas; select * from user_ts_quotas; max_bytes欄位-1是代表沒有限制,其它值多少就是多少. dba_ts_quotas :描述所有使用者表空間的限額 user_ts_quotas :描述當前使用者表空間的限額。 如果查詢結果中max_bytes欄位不為-1,修改為無限制或者指定的大小。 不對使用者做表空間限額控制: GRANT UNLIMITED TABLESPACE TOuser; 這種方式是全域性性的。 或者 alter user user quota unlimited on user_tablespace; 這種方式是針對特定的表空間的. 回收表空間限額控制: revoke unlimited tablespace from user; 或者 alter user user quota 0 on user_tablespace;