【发布时间】:2017-12-22 14:19:01
【问题描述】:
我在查询中收到以下错误:
在函数“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
【问题讨论】:
-
我没有看到这里调用了 DECFLOAT 函数。闻起来像触发问题。再说一次,你只是在做一个选择......这让我认为这是一个隐式转换的数据类型问题。对 DB2 不是很熟悉,所以对它持保留态度。
-
这些是视图吗?
-
@JacobH 不,我是直接从桌子上拉出来的;我对其进行了更多分类,看起来问题与我的 where 语句有关,但我不知道为什么,我已经在另一个类似查询中在同一张表上运行了该确切条件,没有问题
-
试试
ven.vendor = '20200' -
是的,我试过了,但没有返回任何结果,我确实验证了供应商字段是一个字符串。然而,在我创建的另一个运行正确的查询中(我让 vendor = number 字段),当我让 vendor 一个文本字段时,什么都没有出现,但是作为一个数字字段值确实出现了