oracle数据库通过db link 向db2数据库写数据报错

zhuhappy 2009-03-04 11:39:29
我试了好多种方法插入都没有插入到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, PAY

ORA-02070: 数据库DB2不支持此上下文中的TO_CHAR

...全文
198 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuhappy 2009-03-04
  • 打赏
  • 举报
回复
能够说详细点吗?
Andy__Huang 2009-03-04
  • 打赏
  • 举报
回复
看来是要通过临时表做间接数据转换才行
zcs_1 2009-03-04
  • 打赏
  • 举报
回复
一步一步解决,先把用到to_char的那个数据用system代替试试
zhuhappy 2009-03-04
  • 打赏
  • 举报
回复
试过,如果直接用就会报:
Error on line 0
INSERT INTO t_fin_icbs@db2 ( ERP_PAYMENT_ID, RECORD_STATUS, T_RECORD_STATUS, PAY

ORA-02070: 数据库DB2不支持此上下文中的special functions
Andy__Huang 2009-03-04
  • 打赏
  • 举报
回复
TO_DATE(TO_CHAR(SYSDATE,'YYYY-MM-DD'),'yyyy-mm-dd')
这个sysdate本来就是日期了,为何先把它转换为字符串,然后再转为日期回来?
你可不用转换函数,直接用sysdate,有什么问题吗?

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧