Oracle:标识符无效

时间:2012-08-31 11:47:34

标签: oracle

任何人都可以向我解释为什么我在运行以下内容时出现00904错误

SELECT "OASM"."DT_GROUPEPG".GROUPEPGID,
  "OASM"."DT_GROUPEPG".GROUPID,
  "OASM"."DT_GROUPEPG".EPGID,
  "OASM"."DT_GROUPEPG".ZAPID,
  "OASM"."LU_EPG".LASTREADTIME,
  "OASM"."LU_EPG".SERVICE_NAME,
  "OASM"."LU_EPG".SOURCE_ID,
  "OASM"."LU_EPG".ONID,
  "OASM"."LU_EPG".TSID,
  "OASM"."LU_EPG".SID,
  "OASM"."LU_EPG".TYPE_ID,
  "OASM"."LU_EPG".OPERATOR_ID,
  "OASM"."LU_EPG".URL 
FROM "OASM"."DT_GROUPEPG"
INNER JOIN "OASM"."LU_EPG"
ON "OASM"."DT_GROUPEPG".EPGID = "OASM"."LU_EPG".EPGID
ORDER BY LastReadTime;

我还是Oracle的新手,并且给人的印象是,由于Oracle执行语句块而不是逐行执行,因此执行此类查询会有效吗?当前错误在OPERATOR_ID行触发,但删除/注释它只会将错误向上移动一行,直到删除所有LU_EPG表引用

1 个答案:

答案 0 :(得分:0)

引用列时,您不能(也不需要)指定模式名称。另外,我建议您使用表别名(例如下面示例中的ab):

SELECT a.GROUPEPGID,
  a.GROUPID,
  a.EPGID,
  a.ZAPID,
  b.LASTREADTIME,
  b.SERVICE_NAME,
  b.SOURCE_ID,
  b.ONID,
  b.TSID,
  b.SID,
  b.TYPE_ID,
  b.OPERATOR_ID,
  b.URL 
FROM "OASM"."DT_GROUPEPG" a
INNER JOIN "OASM"."LU_EPG" b
ON a.EPGID = b.EPGID
ORDER BY b.LastReadTime;
相关问题