我操作的步骤如下:
1.在oracle的服务器上增加informix的ODBC源.
2.修改oracle的相应配置文件.
3.创建DBLINK
4.取数据select * from test01@from_sql; --  可以显示数据
select devid  from test01@from_sql;  -- 会报错,实际是有devid这个字段的
select "devid"  from test01@from_sql;  -- 给devid加上双引号后可以显示数据.
但是
insert into dev_info select "devid"  from test01@from_sql; 
报错,提示:ora-01861:文字与格式字符串不匹配 的错误我换成oracle连sql server 
select devid  from test01@from_sql;  --成功 
insert into dev_info select devid  from test01@from_sql;  -- 也成功为什么oracle连informix就不能插入oracle数据库?请帮帮我,谢谢!

解决方案 »

  1.   

    改成:
    insert into dev_info select "devid" as devid  from test01@from_sql; 
    试试看?
      

  2.   

    非常感谢楼上,一般的字段可以插入了.但日期格式的字段还是报ora-01861:文字与格式字符串不匹配insert into atm_info (setupaddr,test,datetime1)select authno,account1, datetime from 
    (
    select "transl_authno" as authno,"transl_account" as account1
     , "transl_datetime" as datetime  from test01 
    where   "transl_datetime">='2009-11-30 0:0:1' AND
    "transl_datetime"<'2009-12-1 0:0:1'
    )对于日期格式的字段需要怎么处理?
      

  3.   

    报错,提示:ora-01861:文字与格式字符串不匹配'2009-12-1 0:0:1' 改成
    to_date('20091201000001',yyyymmddhh24miss)
      

  4.   

    单独执行select是没有错误的。
    select authno,account1, datetime from 

    select "transl_authno" as authno,"transl_account" as account1 
    , "transl_datetime" as datetime  from test01 
    where  "transl_datetime">='2009-11-30 0:0:1' AND 
    "transl_datetime" <'2009-12-1 0:0:1' 
    )是插入数据的时候报错的。后来我用
    create table tmp_table 
    asselect authno,account1, datetime from 

    select "transl_authno" as authno,"transl_account" as account1 
    , "transl_datetime" as datetime  from test01 
    where  "transl_datetime">='2009-11-30 0:0:1' AND 
    "transl_datetime" <'2009-12-1 0:0:1' 
    )是能生成新表,且内容也能过去。但数据改不了。提示:“datetime”标志符无效。 也就是字段名“datetime”有双引号(从informix过来就变成有引号的),我自己新建一个表,其中一字段有双引号,效果也是一样,改不了值.怎么能对有双引号的字段的值进行操作.
      

  5.   

    楼主,希望共享一下你的 dblink oracle to informix 我始终没建立成功,谢谢你!QQ :398407063