ORA-00998: должен называть это выражение псевдонимом столбца. В другой схеме это работает - PullRequest
0 голосов
/ 06 февраля 2020

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

CREATE OR REPLACE FORCE VIEW "MyNewSchema.SPECIAL_APPROVERS_VW" ("NAME", "ID", "PERSON_NUMBER", "USER_NAME", "BUSINESS_UNIT_ID", "BUSINESS_UNIT_NAME", "ROW_TYPE") AS
select e.FULL_NAME, e.PERSON_ID, e.PERSON_NUMBER, null, e.ORGANIZATION_ID, d.NAME, 'E'
  from MyNewSchema.EMPLOYEES_IMPORT e
  join MyNewSchema.DEPARTMENTS_IMPORT d on d.ORGANIZATION_ID = e.ORGANIZATION_ID
union all
select d.NAME, d.ORGANIZATION_ID, DEPARTMENT_ID, null, null, null, 'D'
from MyNewSchema.DEPARTMENTS_IMPORT d

Почему это работает в другой схеме, но когда я переносил таблицы в MyNewSchema, оно не работает, и я получаю такую ​​ошибку:

Compilation failed,line 0 (10:36:04)
ORA-00998: must name this expression with a column alias 

1 Ответ

1 голос
/ 06 февраля 2020

Я думаю, что это будет работать:

CREATE OR REPLACE FORCE VIEW SPECIAL_APPROVERS_VW ("NAME", "ID", "PERSON_NUMBER", "USER_NAME", "BUSINESS_UNIT_ID", "BUSINESS_UNIT_NAME", "ROW_TYPE") AS
select e.FULL_NAME, e.PERSON_ID, e.PERSON_NUMBER, null, e.ORGANIZATION_ID, d.NAME, 'E'
  from EMPLOYEES_IMPORT e
  join DEPARTMENTS_IMPORT d on d.ORGANIZATION_ID = e.ORGANIZATION_ID
union all
select d.NAME, d.ORGANIZATION_ID, DEPARTMENT_ID, null, null, null, 'D'
from DEPARTMENTS_IMPORT d

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

...