Я не уверен, что это ошибка ColdFusion 2018 или что-то вроде того, как ColdFusion 2018 реализует драйвер Jaybird 2.2.10 для Firebird 2.5.
У меня есть таблица, которая содержитстолбец с именем "item_date". Этот столбец имеет тип данных Firebird «дата». В ColdFusion 10 приведенный ниже запрос показывает правильную длину строки на основе возвращенного месяца. Однако в ColdFusion 2018 длина строки возвращается как 9 для всех из них. Похоже, что ColdFusion назначает результирующему набору тип данных CHAR (9), а не VARCHAR, как должно быть.
Мой пример подтверждения кода концепции выглядит следующим образом.
<cfquery name="test" datasource="#application.dsn#">
SELECT
CASE EXTRACT (MONTH from item_date)
WHEN 1 THEN 'January'
WHEN 2 THEN 'February'
WHEN 3 THEN 'March'
WHEN 4 THEN 'April'
WHEN 5 THEN 'May'
WHEN 6 THEN 'June'
WHEN 7 THEN 'July'
WHEN 8 THEN 'August'
WHEN 9 THEN 'September'
WHEN 10 THEN 'October'
WHEN 11 THEN 'November'
WHEN 12 THEN 'December'
END itemMonth
FROM MY_TABLE
</cfquery>
<cfloop query="test">
#test.itemMonth# - Length: #Len(test.itemMonth)#<br />
</cfloop>
Когдаэто работает, можно ожидать, что результат покажет
сентябрь - длина: 9Август - длина: 6... и так далее.
Однако вместо этого для всех из них показана длина 9. Если месяц июнь, 4 символа, результат по-прежнему показывает 9. Это похоже на ColdFusion или драйвер Jaybird добавляет дополнительный пробел в конец поля, как будто он определен в результате как тип CHAR по какой-то причине.
Этого не происходит в ColdFusion 10 с использованием того же Firebird 2.5 и драйвера Jaybird 2.2.10.
Этого также не происходит в ColdFusion 2018 при использовании SQL Server вместо Firebird
Это довольно проблематично, потому что это приводит к сбою сравнения строк при проверке результатов, которые равны «строке». Например, если я потяну Query of Queries, ища где itemMonth = 'October', результаты не вернутся, потому что у результата 'October' с 2 дополнительными пробелами.
Является ли это ошибкой в ColdFusion 2018? Ошибка в драйвере Jaybird? Любая помощь с благодарностью!