Как изменить размер столбца представления в Oracle - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь изменить размер столбца представления с помощью той же команды, которую мы используем для таблицы, например:

alter table 
STUDENT
modify (
    ROLL_NO VARCHAR2(80)
);

Но ошибка его броска

Ошибка SQL: ORA-00942: таблица или представление не существует

Так, как мы можем изменить размер столбца представления?

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

Вот процедура, которой я следовал:

1- Сначала найдите базовую таблицу для этого представления, выполнив следующий запрос

SELECT * FROM DBA_DEPENDENCIES
WHERE OWNER = '<scheman_name>'
AND NAME = '<view_name>'
AND TYPE = 'VIEW';

2- Выше запроса будет таблица, в которой вы найдете базовую таблицу под именем столбца 'REFERENCED_NAME'.

3 - Теперь измените размер столбца этой базовой таблицы.

ПРИМЕЧАНИЕ. Представление может состоять из 1 или более 1 таблиц, поэтому необходимо изменить размер столбца всех этих базовых таблиц.

0 голосов
/ 05 сентября 2018

Представление является просто сохраненным запросом и «наследует» тип столбца от базовой базовой таблицы. Поэтому, если вам нужно изменить метаданные, вы должны изменить определение представления:

ALTER VIEW view_students
AS
SELECT CAST(roll_no AS VARCHAR2(80)) AS roll_no,
     ...
FROM tab_students;

Если вы хотите изменить тип данных для хранения более длинных строк, вам нужно найти базовую таблицу и изменить ее вместо:

ALTER VIEW tab_students
MODIFY (ROLL_NO VARCHAR2(80));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...