Ошибка DB2 SQL при передаче SQL через SAS

#sql #sas #db2

#sql #sas #db2

Вопрос:

Я выполнял запрос SAS с использованием средства сквозной передачи для доступа к данным из базы данных db2. Формат даты показан (числовой пример) как 01FEB2021. Я использую диапазон дат, используя между ‘2021-02-01’ и ‘2021-02-16’. Я получаю следующую ошибку в журнале SAS:

ОШИБКА: ошибка расширенной выборки курсора CLI: [IBM] [Драйвер CLI] [DB2 / LINUXX8664] Во время преобразования числового типа данных произошло переполнение SQL0413N. SQLSTATE=22003

Может кто-нибудь помочь мне исправить эту ошибку? Заранее спасибо

Комментарии:

1. Какие столбцы в вашем проходе SELECT ? Является ли один из столбцов типа BIGINT or DECFLOAT ? Если это так, то это ваша проблема.

Ответ №1:

Предположим, что один из редактируемых столбцов имеет SELECT тип BIGINT или DECFLOAT

  • Если это так, то это ваша проблема. В вашем SELECTY вы захотите:
    • приведение к ДВОЙНОМУ, который может обрабатывать SAS, или
    • используйте функцию для выбора символьного представления столбца с увеличенным размером
      • BIGINT(my-column) , или
      • DECFLOAT(my-column) , или
      • DECFLOAT_FORMAT(my-column, format-string)

Комментарии:

1. Спасибо, Ричард. Функция приведения сработала для меня. Я ценю, что вы нашли время ответить на мой запрос. Спасибо.