Ответ зависит от того, как ваша компания определила свои правила табличного пространства.
Пользователи Oracle (или схемы) могут иметь одно «табличное пространство по умолчанию», которое можно увидеть, запросив базу данных:
select username, default_tablespace from dba_users;
или если у вас нет разрешения на это, и вы хотите знать, что это такое только для текущего пользователя:
select username, default_tablespace from user_users;
Или, возможно, этот, чтобы увидеть всех пользователей, которые видны вашему текущему подключенному пользователю:
select username, default_tablespace from user_users;
Согласно документации Oracle (https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_8003.htm) это означает:
Укажите табличное пространство по умолчанию для объектов, которые создает пользователь. Если
Вы пропускаете это предложение, тогда объекты пользователя сохраняются в
табличное пространство по умолчанию для базы данных. Если табличное пространство по умолчанию не было
указанный для базы данных, то объекты пользователя хранятся в
Табличное пространство SYSTEM.
Так что для ваших намерений и целей, когда вы создаете таблицу без явного использования табличного пространства в конце, она в целом перейдет к табличному пространству пользователя по умолчанию. Если ваши администраторы не склонны определять табличное пространство по умолчанию, это начинает оказывать более серьезное влияние, поскольку таблица будет храниться в глобальном табличном пространстве по умолчанию или (не дай бог) перейдет в табличное пространство SYSTEM. Последний вариант будет крайне вреден для работоспособности базы данных.
Некоторые компании имеют привычку назначать разные табличные пространства для таблиц и, например, для индексов. В этом случае пользователи могут иметь только одно табличное пространство по умолчанию, и если вы пропустите предложение табличного пространства в операторе создания индекса (или создания таблицы), объекты перейдут в неправильное табличное пространство.
Теперь о последствиях наличия таблицы или индекса в неверном табличном пространстве. Табличное пространство - это набор из одного или нескольких файлов физической операционной системы (Oracle называет их файлами данных). Всякий раз, когда вы создаете таблицу или индекс в табличном пространстве, оракул выделяет пространство в этом файле данных, который Oracle называет сегментами. Сегменты - это логические единицы внутри файла данных. Имейте в виду, что Oracle далее разбивает сегменты на более мелкие логические единицы, называемые экстентами и блоками, но это немного выходит за рамки данной темы. Если вам интересно, здесь можно прочитать больше: https://docs.oracle.com/cd/B19306_01/server.102/b14220/logical.htm
Вернемся к сегментам. Сегменты существуют внутри файлов данных, которые принадлежат табличным пространствам. Когда вы помещаете свой объект в табличное пространство и хотите переместить его в другое табличное пространство, Oracle необходимо физически записывать файлы в ОС. И это может быть просто, если таблица пуста, или может потребовать значительных усилий, если речь идет о массивной таблице, охватывающей несколько файлов данных или содержащей гигабайты или терабайты данных. Это может означать, что для исправления требуется сбой приложения.
Oracle предоставляет определенные методы, позволяющие избежать сбоев приложений в этих сценариях, например, онлайн Переопределение (пакет DBMS_REDEFINITION). Но я надеюсь, что мы сможем согласиться с тем, что их использование можно лучше использовать для миграции приложений и тому подобного.
Использование настроек табличного пространства по умолчанию во многих случаях приемлемо, во всяком случае, но, если вы позволите мне, возможно, практическое правило для многих вещей - Oracle, если вы можете написать код, чтобы сделать что-то явно, вместо того, чтобы полагаться на значения по умолчанию, сделайте себе и своему администратору базы данных услугу. В общем, гибкость в том, чтобы полагаться на него, даже превосходит даже пару раз, когда вы столкнетесь с неожиданностью, а затем будете ответственны за его очистку позже.