2

谁能向我解释为什么我在运行以下命令时出现 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 表引用

4

1 回答 1

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;
于 2012-09-03T01:32:23.730 回答