#sql #oracle #ora-00933
#sql #Oracle #ora-00933
Вопрос:
я не могу понять, что не так с этим запросом. Кто-нибудь может объяснить мне, где ошибка. Большое вам спасибо
SELECT
WF1.GUID,
WF1.COD_FONTE,
WF1.NOME_FILE,
VW.COD_STEP_PRECEDENTE,
VW.COD_STEP_ATTUALE AS WF1
FROM
MONITOR.FILE_WORKFLOW
INNER JOIN MONITOR.VW_JOB_FONTE_STEP AS VW ON WF1.COD_FONTE = VW.COD_FONTE
AND VW.JOB_KEY = 'FLATTENER'
WHERE
WF1.GUID = '5f58d00b6102ab20a8d5c83f'
AND WF1.ESITO = 'OK'
AND WF1.COD_STEP = VW.COD_STEP_PRECEDENTE
AND NOT EXISTS (
SELECT
1
FROM
MONITOR.FILE_WORKFLOW AS WF2
WHERE
WF2.GUID = '5f58d00b6102ab20'
AND WF2.ESITO = 'OK'
AND WF2.COD_STEP = VW.COD_STEP_ATTUALE
AND WF1.IDE_FILE_WORKFLOW_PARENT = WF2.IDE_FILE_WORKFLOW_PARENT
)
Ответ №1:
Я уверен, что вы неправильно используете псевдоним таблицы
VW.COD_STEP_ATTUALE AS WF1 <-- WF1 is a column alias
FROM
MONITOR.FILE_WORKFLOW
INNER JOIN MONITOR.VW_JOB_FONTE_STEP AS VW
ON WF1.COD_FONTE = VW.COD_FONTE <-- here you are using WF1 as a table alias
Я предполагаю, что это устранит проблему
VW.COD_STEP_ATTUALE
FROM
MONITOR.FILE_WORKFLOW WF1 <-- alias name goes here
Комментарии:
1. Ни один из псевдонимов таблицы не должен иметь «AS» — Oracle разрешает это для псевдонимов столбцов, но не для псевдонимов таблиц.
2. @AlexPoole вы правы, спасибо! Просто скопировал это, не обращая внимания на детали
3. я удалил все КАК, но все равно получил ошибку: cx_Oracle. Ошибка базы данных: ORA-00942: таблица или представление не существует
4. @FracescoSciarra проверьте, правильны ли имена таблиц и имеет ли пользователь к ним доступ. Войдите в систему как этот пользователь и попробуйте выбрать как из MONITOR.VW_JOB_FONTE_STEP, так и из MONITOR.FILE_WORKFLOW
5. @FracescoSciarra — вам все равно нужно переместить псевдоним WF1 из столбца в таблицу, как показано в этом ответе; неясно, сделали ли вы это.