我试了好多种方法插入都没有插入到db2的表里面去,请帮忙看看,直接在db2里面执行第一句(A)就没有问题。
A.INSERT INTO t_fin_icbs@db2 ( ERP_PAYMENT_ID, RECORD_STATUS, T_RECORD_STATUS, PAYMENT_TYPE_ID, C_RP_TYPE,
PAYMENT_METHOD_TYPE_ID, PAYMENT_ACCOUNTS, DEPOSIT_BANK_NAME, DEPOSIT_ACCOUNTS_NAME,
DEPOSIT_ACCOUNTS, DEPOSIT_PROVINCE, DEPOSIT_CITY, DEPOSIT_MOBILE, DEPOSIT_EMAIL, CITY_FLAG,
PRIORITY_FLAG, OPERATION_TYPE, BANK_NUMBER, AMOUNT, BUDGET_PLAN_ID, BUDGET_ITEM_ID, PURPOSE,
TRANS_STATUS, CENTER_TRANS_ID, NETBANK_TRANS_ID, NETBANK_EPT_DATE, NETBANK_EPT_TIEM,
NETBANK_ABSTRACT, CBS_COMMENT, ERP_COMMENT, VERSION, CHECK_CODE, C_SEGMENT1, C_SEGMENT2, C_SEGMENT3,
C_SEGMENT4, C_SEGMENT5, C_SEGMENT6, C_SEGMENT7, C_SEGMENT8, C_TABLE_FLAG, T_CRT_TM, C_EDR_TYP,
C_FEETYP_CDE, C_CLM_TYP, C_DOC_FLAG, C_FLOW_NO, C_CLM_NO, C_PLY_NO,
C_DPT_CDE ) VALUES ( 
'M230820090300466', 'Available',  CURRENT TIMESTAMP
, '202', '205', '3', '2001090000013673', '401433076852', '随碟附送多方式'
, '200103000013673', '360000', '361100', '8265392', NULL
, '0', 'N', '3', '401', 294299, NULL, NULL, 'pay', NULL, NULL, NULL, NULL, NULL
, NULL, NULL, NULL, 0, '000', '1160300', '10294', NULL, NULL, '0326', NULL, NULL, NULL
, NULL,  CURRENT TIMESTAMP, NULL, NULL
, '1', NULL, '212', '423080326208001743', '1230803262008000907', '23080001');B.
INSERT INTO t_fin_icbs@db2 ( ERP_PAYMENT_ID, RECORD_STATUS, T_RECORD_STATUS, PAYMENT_TYPE_ID, C_RP_TYPE,
PAYMENT_METHOD_TYPE_ID, PAYMENT_ACCOUNTS, DEPOSIT_BANK_NAME, DEPOSIT_ACCOUNTS_NAME,
DEPOSIT_ACCOUNTS, DEPOSIT_PROVINCE, DEPOSIT_CITY, DEPOSIT_MOBILE, DEPOSIT_EMAIL, CITY_FLAG,
PRIORITY_FLAG, OPERATION_TYPE, BANK_NUMBER, AMOUNT, BUDGET_PLAN_ID, BUDGET_ITEM_ID, PURPOSE,
TRANS_STATUS, CENTER_TRANS_ID, NETBANK_TRANS_ID, NETBANK_EPT_DATE, NETBANK_EPT_TIEM,
NETBANK_ABSTRACT, CBS_COMMENT, ERP_COMMENT, VERSION, CHECK_CODE, C_SEGMENT1, C_SEGMENT2, C_SEGMENT3,
C_SEGMENT4, C_SEGMENT5, C_SEGMENT6, C_SEGMENT7, C_SEGMENT8, C_TABLE_FLAG, T_CRT_TM, C_EDR_TYP,
C_FEETYP_CDE, C_CLM_TYP, C_DOC_FLAG, C_FLOW_NO, C_CLM_NO, C_PLY_NO,
C_DPT_CDE ) VALUES ( 
'M230820090300466', 'Available',  TO_DATE(TO_CHAR(SYSDATE,'YYYY-MM-DD'),'yyyy-mm-dd')
, '202', '205', '3', '200103090000013673', '401433076852', '上饶市信州区人民法院'
, '200103090000013673', '360000', '361100', '8265392', NULL
, '0', 'N', '3', '401', 294299, NULL, NULL, '付赔款', NULL, NULL, NULL, NULL, NULL
, NULL, NULL, NULL, 0, '000', '1160300', '10294', NULL, NULL, '0326', NULL, NULL, NULL
, NULL, TO_DATE(TO_CHAR(SYSDATE,'YYYY-MM-DD'),'yyyy-mm-dd'), NULL, NULL
, '1', NULL, '212', '4230803262008001743', '1230803262008000907', '23080001'); 
系统报错:
Error on line 0
INSERT INTO t_fin_icbs@db2 ( ERP_PAYMENT_ID, RECORD_STATUS, T_RECORD_STATUS, PAYORA-02070: 数据库DB2不支持此上下文中的TO_CHAR

解决方案 »

  1.   

    TO_DATE(TO_CHAR(SYSDATE,'YYYY-MM-DD'),'yyyy-mm-dd') 
    这个sysdate本来就是日期了,为何先把它转换为字符串,然后再转为日期回来?
    你可不用转换函数,直接用sysdate,有什么问题吗?
      

  2.   

    试过,如果直接用就会报:
    Error on line 0
    INSERT INTO t_fin_icbs@db2 ( ERP_PAYMENT_ID, RECORD_STATUS, T_RECORD_STATUS, PAYORA-02070: 数据库DB2不支持此上下文中的special functions
      

  3.   

    一步一步解决,先把用到to_char的那个数据用system代替试试