Sybase Central - Почему это поле VARCHAR конвертируется в ЦИФРОВУЮ?
В моей среде DEV я использую Sybase Central
16.0.0 build 2043, тогда как в моей среде UAT я использую 16.0.0 build 1948. У меня есть BEGIN END
оператор, который использует курсор для перебора записей небольшой таблицы. Курсор объединяет все столбцы текущей строки в одну LONG VARCHAR
переменная. В DEV код работает нормально
BEGIN
DECLARE concatenateTest LONG VARCHAR;
DECLARE cursTEST CURSOR FOR
SELECT A_NUMERIC_FIELD || '' || A_VARCHAR_FIELD AS ROW_DETAIL
FROM MY_SCHEMA.MY_TABLE;
OPEN cursTEST;
FETCH NEXT cursTEST INTO concatenateTest;
WHILE @@sqlstatus = 0 LOOP
MESSAGE 'ROW_DETAIL: ', concatenateTest TYPE STATUS TO CLIENT;
FETCH NEXT cursTEST INTO concatenateTest;
END LOOP;
CLOSE cursTEST;
END;
В UAT (более старая сборка) сценарий обнаруживает ошибку, потому что по какой-то причине он пытается преобразовать содержимое A_VARCHAR_FIELD
к NUMERIC
значение. Я могу обойти эту проблему путем приведения, но почему поведение двух версий Sybase Central отличается?