Электронная документация включает книгу с объяснениями и решениями для всех сообщений об ошибках.Некоторые из них немного загадочны, но это место для начала. Узнайте больше .
Anyhoo, вот иллюстрированное решение для ORA-01536.
Администратор баз данных создает нового пользователя:
SQL> create user fox_in_socks identified by tweetlebeetle
2 default tablespace users quota 1M on users
3 /
User created.
SQL> grant create session, create table to fox_in_socks
2 /
Grant succeeded.
SQL>
В другом сеансе наш смелый пользователь создает таблицу...
SQL> conn fox_in_socks/tweetlebeetle
Connected.
SQL> create table t23 (col1 varchar2(4000))
2 /
Table created.
SQL>
.. и делает какую-то работу ....
SQL> begin
2 for i in 1..1000 loop
3 insert into t23 values (rpad('a', 4000, 'a'));
4 commit;
5 end loop;
6 end;
7 /
begin
*
ERROR at line 1:
ORA-01536: space quota exceeded for tablespace 'USERS'
ORA-06512: at line 3
SQL>
Э-э-э!Таким образом, наш пользователь идет к своему ручному администратору базы данных и запрашивает дополнительную квоту, которую он получает:
SQL> alter user fox_in_socks
2 quota 10M on users
3 /
User altered.
SQL>
Работа продолжается:
SQL> begin
2 for i in 1..1000 loop
3 insert into t23 values (rpad('a', 4000, 'a'));
4 commit;
5 end loop;
6 end;
7 /
PL/SQL procedure successfully completed.
SQL>
Если пользователь является владельцем приложения, тогда администратор базы данных можетрешили предоставить им неограниченную квоту (особенно, если они были единственным пользователем с правами на это табличное пространство):
alter user fox_in_socks
quota unlimited on users
/
(в реальной жизни такая ситуация вряд ли будет действительной для табличного пространства USERS).
Пользователи могут проверить свою текущую квоту, используя соответствующий вид:
SQL> select * from user_ts_quotas
2 /
TABLESPACE_NAME BYTES MAX_BYTES BLOCKS MAX_BLOCKS DRO
------------------------------ ---------- ---------- ---------- ---------- ---
USERS 9437184 10485760 1152 1280 NO
SQL>