Ой, какой простой вопрос и сколько расстроенных ответов!
Да, технически вы можете изменить таблицы словаря данных Oracle, и нет, вы не должны, но я могу поймите ваше любопытство. Можно заглянуть под капот, просто используйте базу данных, например, из здесь , поиграйте и выбросьте ее.
Вы не сможете изменить представления словаря данных, такие как ALL_TABLES
напрямую, потому что это представления в верхних таблицах, например SYS.TAB$
. (Определение отображается в DBA_VIEWS.TEXT
). Если вы хотите увидеть их операторы CREATE
, они находятся на сервере базы данных по адресу $ORACLE_HOME/rdbms/admin
и на самом деле довольно интересны.
Самая глупая вещь, которую я видел на inte rnet, - это кто-то, кто вставил второй «Х» в таблицу DUAL
. Пожалуйста, не делайте этого дома!
Я почти уверен, что эти таблицы SYS можно изменить, но я бы никогда этого не сделал, потому что они станут несовместимыми. Если подумать, это хранилище, используемое Oracle, чтобы гарантировать целостность ваших таблиц, поэтому целостность самого хранилища не может быть полностью защищена. Вы вставляете строку в SYS.COL$
, но это не означает, что в вашей таблице появился новый столбец, просто информация в словаре неверна.