Что такое ошибка Oracle ORA-01536? - PullRequest
       0

Что такое ошибка Oracle ORA-01536?

0 голосов
/ 20 декабря 2010

Я получил следующую ошибку в Oracle: ORA-01536

В чем проблема?

Ответы [ 2 ]

19 голосов
/ 21 декабря 2010

Электронная документация включает книгу с объяснениями и решениями для всех сообщений об ошибках.Некоторые из них немного загадочны, но это место для начала. Узнайте больше .

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>
5 голосов
/ 20 декабря 2010

ORA-01536: превышена квота пространства для табличного пространства 'строка'

Причина : Квота пространства для владельца сегмента в табличном пространстве исчерпана, и операция предприняла попытку созданияновый экстент сегмента в табличном пространстве.

Действие : либо удалите ненужные объекты в табличном пространстве, чтобы освободить пространство, либо попросите привилегированного пользователя увеличить квоту в этом табличном пространстве для владельца сегмента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...