нет привилегий на табличное пространство «ПОЛЬЗОВАТЕЛИ», в то время как мое табличное пространство является чем-то другим

Я создал одну таблицу «app_config» и переместил эту таблицу в пользовательское табличное пространство «appuser_tbs_initial». Но всякий раз, когда я пытаюсь вставить значения в эту таблицу, я получаю сообщение об ошибке «нет привилегий в табличном пространстве« ПОЛЬЗОВАТЕЛИ »». Я не понимаю, почему, имея другое табличное пространство, я получаю сообщение об ошибке для табличного пространства по умолчанию. Здесь прикреплен скриншот, который может быть полезен для понимания моего запроса -

ора


person Aniket Nandan    schedule 23.04.2020    source источник
comment
Это может быть табличное пространство, используемое объектом, который зависит от таблицы, например индекс. Что это возвращает: select tablespace_name from dba_indexes where table_owner = 'APPUSER' and table_name = 'APP_CONFIG';   -  person Jon Heller    schedule 24.04.2020
comment
@JonHeller Запустив упомянутый SQL, я получил USERS в качестве имени табличного пространства. Теперь я понимаю, почему вылезла ошибка. Но смущен, почему он не меняется даже после изменения табличного пространства для моей таблицы. Спасибо !   -  person Aniket Nandan    schedule 24.04.2020


Ответы (1)


Спасибо Джону Хеллеру за подсказку, как решить эту проблему. Я нашел реальную причину проблемы. То, что я сделал, было -

  • Создайте таблицу без какого-либо пользовательского табличного пространства.
  • Создайте ограничение первичного ключа для этой таблицы.
  • Измените таблицу, чтобы изменить табличное пространство на пользовательское.

Но я не изменил ограничение на перестроение, поэтому табличное пространство по-прежнему было по умолчанию. После того, как я изменил ограничение и проверил с помощью того же SQL, который предоставил Джон Хеллер, он показывает мне правильное имя табличного пространства. Теперь я могу вставить данные в эту таблицу.

person Aniket Nandan    schedule 24.04.2020
comment
Вы можете захотеть изменить пользователя по умолчанию на правильное табличное пространство: alter user appuser default tablespace appuser_tbs_initial; С этим изменением конфигурации вам больше никогда не понадобится указывать табличное пространство. - person Jon Heller; 25.04.2020
comment
Да, это тоже помогает. Спасибо @JonHeller - person Aniket Nandan; 26.04.2020