Sql ORA-00998:必须使用列别名命名此表达式。在不同的模式中,它可以工作

Sql ORA-00998:必须使用列别名命名此表达式。在不同的模式中,它可以工作,sql,oracle,sql-view,Sql,Oracle,Sql View,我正在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,

我正在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

正如您所提到的,您现在已经拥有该模式中的所有表,并且正在该模式中创建一个视图……

@BarbarosÖzhan,这真的需要吗?创建视图本身指定列名。是的,您是对的@jarlh。因为有明确列出的列名。但是如何解决我的问题?我完全不明白:(从
MyNewSchema.SPECIAL\u APPROVERS\u VW中删除
MyNewSchema.
连接到另一个架构时。当然,请确保为当前架构授予特权。
MyNewSchema中的
MyNewSchema
。特殊审批人\u VW
应在双引号之外:
MyNewSchema。“特殊审批人\u VW”
或根本不使用双引号