Ошибка повторяющегося столбца при создании представления - PullRequest
0 голосов
/ 05 марта 2020

Я пытаюсь создать представление для следующего кода:

       (SELECT* FROM v1) view1
    LEFT OUTER JOIN salesperson sp
    on sp.salespersonid = view1.salespersonid;

Этот результат дает мне точное количество записей, которые мне нужны, и предоставляет правильную информацию, но когда я делаю следующее

      CREATE VIEW v2 AS 
      SELECT * FROM 
         (SELECT* FROM v1) view1
         LEFT OUTER JOIN salesperson sp
        on sp.salespersonid = view1.salespersonid;

Я получаю следующую ошибку

Error starting at line : 1 in command -
CREATE VIEW v2
AS 
SELECT * FROM 
(SELECT*
  FROM v1) view1
LEFT OUTER JOIN salesperson sp
on sp.salespersonid = view1.salespersonid
Error report -
ORA-00957: duplicate column name
00957. 00000 -  "duplicate column name"
*Cause:    
*Action:

1 Ответ

1 голос
/ 05 марта 2020

Не очевидна ли ошибка? Представление не может иметь повторяющиеся имена столбцов. При создании представления вам действительно следует явно перечислить все столбцы.

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

CREATE VIEW v2 AS 
    SELECT *
    FROM v1 view1 LEFT JOIN
         salesperson sp
         USING (salespersonid);
...