ORA-00904: «ROW_ID»: неверный идентификатор - PullRequest
0 голосов
/ 15 октября 2019

Я хотел получить rowId из приведенного ниже запроса, но когда я выполняю запрос, я получаю сообщение об ошибке. Может ли кто-нибудь, пожалуйста, помогите.

WITH DATA_TBL AS
                (SELECT 
          /*+ parallel(scr,10)
              parallel(el,10)  */ scr.rowid  AS "row_id", scr.*
          FROM SOURCE_TABLE scr
          LEFT OUTER JOIN CITY el ON (el.CITY_NAME  = scr.SUN_W)
          WHERE el.rowid IS NULL
          AND scr.SUN_W IS NOT NULL
          AND GREATEST(scr.SUN_WA, scr.B ) IS NULL
          )

          SELECT row_id FROM DATA_TBL;

Когда я выполняю вышеупомянутый запрос, я получаю сообщение об ошибке ниже, я не уверен, что я делаю неправильно, пожалуйста, помогите!

ORA-00904: "ROW_ID": invalid identifier
00904. 00000 -  "%s: invalid identifier"

Но запрос выполняется без проблем, если я делаю ниже, но я хотел выбрать только row_id.

1 Ответ

3 голосов
/ 15 октября 2019

Не используйте двойные кавычки для идентификаторов! По умолчанию Oracle прописывает все идентификаторы в верхнем регистре. Вы явно определили его в нижнем регистре.

Вы могли бы сказать select "row_id", но это глупо. Удалите двойные кавычки в CTE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...