Oracle: воссоздать представление базы данных после изменения размера столбца varchar. - PullRequest
1 голос
/ 08 сентября 2010

Я внес некоторые изменения в столбцы в таблице базы данных (увеличив размер varchar), однако мне нужно обновить представление таблицы, чтобы получить это изменение. В SQL Server 2005 я бы использовал скрипт для -> изменения, чтобы воссоздать скрипт для представления. Я пытаюсь выяснить, что команда Oracle SQL будет перестраивать представление для отображения изменения столбца?

Ответы [ 3 ]

6 голосов
/ 08 сентября 2010

Если ваше мнение явно не ограничивает размер столбца, оно автоматически примет изменение.Возможно, он был аннулирован изменением таблицы, но будет автоматически перекомпилирован при первом использовании;или можно вручную перекомпилировать с помощью alter view <view name> compile.

1 голос
/ 08 сентября 2010

Если вы сделаете это:

create table sample_table(text varchar2(10));
insert into sample_table (text) values('text...');
create view sample_view as select * from sample_table;
select * from sample_view;
alter table sample_table modify text varchar2(200);

Вы ничего не делаете для продвижения этого изменения в базе данных Oracle.

Или вы можете использовать «ALTER VIEW sample_view COMPILE» (как писал @AlexPole или @devio) Oracle делает это автоматически, когда вы впервые используете select on sample_view после alter table.

0 голосов
/ 08 сентября 2010

Попробуйте

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