零星入库的
时间:2023-04-06 11:34
浏览:0
评论:0
简单看是字节超出,但算又没超,按程序走的确有截断的
在Profiler里追踪到查询
declare @p1 int set @p1=806 exec sp_prepexec @p1 output,NULL,N'INSERT INTO dbo.ASRS_PR014A (wk_no, OPNO, IDNO, CHKMRK, STNO, CRANE, WareHouse, LOC_NO, LOC_SEQ, DOC_TYPE, DOC_NO, DOC_ITEM, FACTORY, KCW, LOT_NO, MATNR, PROD_LINE, QC, PROCESS_RESN, SPEC, STG_QTY, TRAN_QTY, FIRST_IN_DATE, ORG_WH, ORG_LOC_NO, ORG_LOC_SEQ, DOC_TYPE_IN, DOC_NO_IN, TRAN_TIME, CASE_PER_PAL) Select ''02'',a.OPNO, a.IDNO,''V'', a.STNO, a.CRANE, b.WareHouse, a.LOC_NO, b.LOC_SEQ, a.DOC_TYPE, a.DOC_NO, b.DOC_ITEM, a.FACTORY, a.KCW, b.LOT_NO, b.MATNR, b.PROD_LINE, b.QC,''再入库'', c.SPEC, b.tran_qty, b.TRAN_QTY, b.FIRST_IN_DATE, b.ORG_WH, b.ORG_LOC_NO, b.ORG_LOC_SEQ, b.DOC_TYPE_IN, b.DOC_NO_IN, b.TRAN_TIME,C.CASE_PER_PAL From asrs_wokfl a, asrs_wokdt b, asrs_itemsf c Where a.STO_IN_OUT = ''O'' and a.WORK_STATUS = ''E'' and b.OPNO = a.OPNO and c.MATNR = b.MATNR ' select @p1
1、首先使用max len得到这个查询的字符长度,Select '02',Max(Len(a.OPNO)),Max(Len( a.IDNO)),Max(Len('V')),Max(Len( a.STNO)),Max(Len( a.CRANE))
完整查询
Select '02',Max(Len(a.OPNO)),Max(Len( a.IDNO)),Max(Len('V')),Max(Len( a.STNO)),Max(Len( a.CRANE)),Max(Len( b.WareHouse)),Max(Len( a.LOC_NO)),Max(Len( b.LOC_SEQ)),Max(Len( a.DOC_TYPE)),Max(Len( a.DOC_NO)),Max(Len( b.DOC_ITEM)),Max(Len(a.FACTORY)),Max(Len( a.KCW)),Max(Len( b.LOT_NO)),Max(Len( b.MATNR)),Max(Len( b.PROD_LINE)),Max(Len( b.QC)),Max(Len('再入库')),Max(Len( c.SPEC)),Max(Len( b.tran_qty)),Max(Len( b.TRAN_QTY)),Max(Len( b.FIRST_IN_DATE)),Max(Len( b.ORG_WH)),Max(Len( b.ORG_LOC_NO)),Max(Len( b.ORG_LOC_SEQ)),Max(Len(b.DOC_TYPE_IN)),Max(Len( b.DOC_NO_IN)),Max(Len( b.TRAN_TIME)),Max(Len(C.CASE_PER_PAL)) From asrs_wokfl a, asrs_wokdt b, asrs_itemsf c Where a.STO_IN_OUT = 'O' and a.WORK_STATUS = 'E' and b.OPNO = a.OPNO and c.MATNR = b.MATNR
2\再一个个跟字段去比较
查了这个字段是仓别,估计是这个录入的时候没有作限制,原始的字段长度是4
不管了,直接在
dbo.ASRS_PR014A
字段长度改成4
应该就可以了