У меня есть рабочий запрос, который подключается к удаленной базе данных Oracle через клиент Oracle 11g. Чтобы включить параметр на основе псевдонима, я использовал этот запрос в качестве подзапроса с параметром в основном запросе. Я ничего не вижу, этот вопрос - хоть что-то, очевидно, - так, прежде чем я измельчить на это еще в течение часа, я думал, что будет представлять код экспертов:Oracle ORA-00936 Отсутствует ошибка выражения с подзапросом
SELECT *
FROM
(
SELECT "UNITS"."UnitNumber", "UNITS"."ModelYear", "UNITS"."Make", "UNITS"."Model", "UNITS"."Class3",
"UNITS"."Class3Description", "UNITS"."TechnicalSpecification", SUBSTR("UNITS"."TechnicalSpecification", 13, 1) AS "FSC",
"UNITS"."OwnerDepartment", "UNITS"."UnitStatus",
CASE WHEN "UNITS"."Class3" = '1' AND SUBSTR("UNITS"."TechnicalSpecification", 13, 1) <> 'F' THEN 'Y'
WHEN ("UNITS"."Class3" = '10' OR "UNITS"."Class3" = '15') AND SUBSTR("UNITS"."TechnicalSpecification", 13, 1) <> 'U' THEN 'Y'
WHEN "UNITS"."Class3" = '11' AND SUBSTR("UNITS"."TechnicalSpecification", 13, 1) <> 'D' THEN 'Y'
WHEN ("UNITS"."Class3" = '2' OR "UNITS"."Class3" = '8' OR "UNITS"."Class3" = '18') AND
SUBSTR("UNITS"."TechnicalSpecification", 13, 1) <> 'C' THEN 'Y'
WHEN ("UNITS"."Class3" = '3' OR "UNITS"."Class3" = '9' OR "UNITS"."Class3" = '17') AND
SUBSTR("UNITS"."TechnicalSpecification", 13, 1) <> 'B' THEN 'Y'
WHEN "UNITS"."Class3" = '16' AND SUBSTR("UNITS"."TechnicalSpecification", 13, 1) <> 'S' THEN 'Y'
WHEN ("UNITS"."Class3" = '13' OR "UNITS"."Class3" = '4') AND SUBSTR("UNITS"."TechnicalSpecification", 13, 1) <> 'L' THEN 'Y'
WHEN ("UNITS"."Class3" = '12' OR "UNITS"."Class3" = '14') AND SUBSTR("UNITS"."TechnicalSpecification", 13, 1) <> 'G' THEN 'Y'
WHEN ("UNITS"."Class3" = '19' OR "UNITS"."Class3" = '20') AND SUBSTR("UNITS"."TechnicalSpecification", 13, 1) <> 'R' THEN 'Y'
WHEN "UNITS"."Class3" = '5' AND SUBSTR("UNITS"."TechnicalSpecification", 13, 1) <> 'E' THEN 'Y'
WHEN "UNITS"."Class3" = '6' AND SUBSTR("UNITS"."TechnicalSpecification", 13, 1) <> 'H' THEN 'Y'
ELSE ''
END AS "MISMATCH"
FROM "MFIVE"."VIEW_ALL_UNITS" "UNITS"
WHERE "UNITS"."OwnerDepartment" LIKE '580' AND "UNITS"."UnitStatus"='A'
) "U"
WHERE "U"."MISMATCH" = {?Mismatch}
ORDER BY "U"."UnitNumber"
При попытке запустить этот запрос я делат ошибка «Не удалось получить дату из базы данных», ORA-00936: отсутствует выражение.
Для жизни меня не видно, в чем проблема. Любая помощь будет оценена по достоинству.
Что это: {? Mismatch} – OldProgrammer
Это побуждает Crystal Reports 13 запрашивать параметр. В этом случае отсутствие значения будет возвращать все записи, тогда как «Y» будет возвращать только те записи, где псевдоним MISMATCH = «Y». – spacetanker
Тогда, возможно, вы тоже должны были пометить CR? Что делать, если вы запускаете запрос прямо из sql? Удалите компоненты запроса до тех пор, пока проблема не исчезнет, а затем добавьте обратно по одному. Это то, что кто-то еще должен будет сделать. Поскольку вы не предоставляете определения таблиц, это не похоже, что кто-то может запустить этот запрос, чтобы узнать, как его исправить. – OldProgrammer