V_SQLSTR :='INSERT INTO XT_KMZD(NF,KMNO,KMMC,ZYLX,KMXZ,KMFX,MJJM,KMLB,YSBM,ZYFX,NCKM,
              DZBZ,ZJKM,YSKZBZ,KMCODE,WBBZ,BMNO,KMSX,DUAN_ID) 
              SELECT NF,KMNO,KMMC,ZYLX,KMXZ,KMFX,MJJM,KMLB,YSBM,ZYFX,NCKM,
              DZBZ,ZJKM,YSKZBZ,KMCODE,WBBZ,BMNO,KMSX,V_DUAN FROM XT_KMZD@' 
              || V_LINK_NAME || ' WHERE NF= ''' || V_YEAR ||'''';  --是两个单引号,不是双引号

解决方案 »

  1.   

    谢谢你的回答。但改成单引号也不行。同样提示:‘无效列名’我去掉where 条件也不管用,好象是链路名拼接的问题
    V_SQLSTR :='INSERT INTO XT_KMZD(NF,KMNO,KMMC,ZYLX,KMXZ,KMFX,MJJM,KMLB,YSBM,ZYFX,NCKM,
                  DZBZ,ZJKM,YSKZBZ,KMCODE,WBBZ,BMNO,KMSX,DUAN_ID) 
                  SELECT NF,KMNO,KMMC,ZYLX,KMXZ,KMFX,MJJM,KMLB,YSBM,ZYFX,NCKM,
                  DZBZ,ZJKM,YSKZBZ,KMCODE,WBBZ,BMNO,KMSX,V_DUAN FROM XT_KMZD@' 
                  || V_LINK_NAME ;
      

  2.   

    我找到原因了。我的v_duan变量没有拼,直接使用的,所以不行。谢谢Songzip.