Публикация

Ошибка "query block has incorrect number of result columns": опасайтесь непрямоугольных запросов

Если при работе с Terrasoft 3.x при попытке открыть датасет возникает такая ошибка, дело, скорее всего, в select query, использующем UNION. К примеру, такой запрос есть в основном реестре раздела проектов (sq_Project) и в механизме напоминаний (sq_Remindings).

Причина проблемы - разное количество полей в двух ветках UNION ALL. Также, вполне может быть, у полей с одинаковым названием в одной ветви стоит галочка "всегда выбирать в запросе", а в другой - по ошибке снята или просто не указана при создании механизма напоминаний для самодельных разделов. Для исправления ошибки нужно привести поля к одинаковому виду.

union

Проще говоря, код

SELECT 'a', 'b' UNION SELECT 'c', 'd'

работает, а
SELECT 'a', 'b' UNION SELECT 'c'

вызывает ошибку.

MS SQL ругается так: All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists
А Oracle: ORA-01789: query block has incorrect number of result columns

Не дайте им для этих слов ни единого повода!

Нравится

Поделиться

0 комментариев
Показать все комментарии