DB2 decfloat error

Я получаю следующую ошибку в моем запросе:

В аргументе строки символов функции "DECFLOAT" обнаружен недопустимый символ.

Однако я не внес никаких изменений ни в одно из полей, которые выбрал:

select
RQH.COMPANY, 
RQH.LAST_APRV_DT, 
RQH.CREATION_DATE, 
RQH.RELEASED_DATE, 
RQH.REL_OPER_ID, 
RQH.REQ_NUMBER, 
RQH.REQUESTER, 

RLN.COMPANY, 
RLN.BUYER,
RLN.DESCRIPTION, 
RLN.TRAN_UNIT_COST, 
RLN.QUANTITY, 
RLN.ITEM, 
RLN.VEN_ITEM, 
RLN.LINE_NBR, 
RLN.MANUF_CODE, 
RLN.MANUF_NBR, 
RLN.VENDOR, 
RLN.REQ_NUMBER, 
RLN.ENTERED_UOM, 


MMD.LINE_NBR, 
MMD.DOC_NBR_NUM, 

VEN.VENDOR_VNAME, 
VEN.VENDOR_GROUP, 
VEN.VENDOR

from mmd 

join rln on MMD.COMPANY = rln.COMPANY and MMD.DOC_NBR_NUM = rln.REQ_NUMBER 
    and MMD.LINE_NBR = rln.LINE_NBR

join cpy on rln.company = cpy.company

join ven on VEN.VENDOR_GROUP = cpy.VENDOR_GROUP and VEN.VENDOR = rln.VENDOR

join rqh on RLN.COMPANY = RQH.COMPANY and RLN.REQ_NUMBER = RQH.REQ_NUMBER

where ven.vendor = 20200

2 ответа

Одно из ваших сравнений имеет числовой тип данных с одной стороны и символьный тип данных с другой. Одно из значений в столбце символов в этой паре не может быть преобразовано в число. Правила преобразования типов данных Db2 гласят, что если один операнд является числовым, а другой - символьным, значение символа будет неявно приведено к числу. Это, очевидно, не удастся для значений, которые не могут быть принуждены. Если это допустимое значение, вам нужно явно привести числовой столбец к символьному типу данных (заполняя его пробелами по мере необходимости).

Если вы полностью удалите предложение "ГДЕ", вы все равно получите сообщение об ошибке или оно исчезнет?

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