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 гласят, что если один операнд является числовым, а другой - символьным, значение символа будет неявно приведено к числу. Это, очевидно, не удастся для значений, которые не могут быть принуждены. Если это допустимое значение, вам нужно явно привести числовой столбец к символьному типу данных (заполняя его пробелами по мере необходимости).
Если вы полностью удалите предложение "ГДЕ", вы все равно получите сообщение об ошибке или оно исчезнет?