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 отличается?

0 ответов

Другие вопросы по тегам