ORA-00998: 必须用列别名命名此表达式。在不同的架构中它有效
ORA-00998: must name this expression with a column alias. In a different schema it works
我正在 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
我认为这会起作用:
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
正如您所提到的,您现在拥有此模式中的所有表,并且您正在该模式中创建视图...
我正在 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
我认为这会起作用:
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
正如您所提到的,您现在拥有此模式中的所有表,并且您正在该模式中创建视图...