Выбор запроса вернул resultSet, но при создании представления с тем же запросом получал ORA-00957 - PullRequest
0 голосов
/ 13 июня 2018

Я новичок в мире SQL и нахожу эту проблему довольно раздражающей.На моем рабочем месте меня попросили создать представление из рабочего запроса, который используется в отчетах Crystal.Когда я выполняю запрос, я получаю resultSet, но когда я пытаюсь создать представление с точно таким же запросом, я получаю ошибку ORA-00957, которая означает, что я получил повторяющееся имя столбца.запрос огромен, и это кошмар, чтобы начать создавать псевдонимы. Возможно ли найти другое решение для этой проблемы.Любая помощь будет оценена, спасибо!

1 Ответ

0 голосов
/ 13 июня 2018

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

create view your_view (alias1, alias2, alias3, ...)
as <your query>

Конечноколичество псевдонимов должно соответствовать количеству столбцов в наборе результатов, и вы должны получить их в правильном порядке.

В качестве тривиального примера, скажем, у вас есть запрос типа:

select dummy, dummy from dual;

DUMMY  DUMMY 
------ ------
X      X     

Если вы попытаетесь просто преобразовать это прямо в представление, вы получите сообщение об ошибке:

create view v as
select dummy, dummy from dual;

Error report -
ORA-00957: duplicate column name

Если вы добавите псевдонимы в определении представления без изменения запроса, это сработает:

create view v (alias1, alias2) as
select dummy, dummy from dual;

View V created.

desc v

Name   Null? Type        
------ ----- ----------- 
ALIAS1       VARCHAR2(1) 
ALIAS2       VARCHAR2(1) 

select * from v;

ALIAS1 ALIAS2
------ ------
X      X     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...