解决方案 »

  1.   

    insert into B@dblink select column from A
      

  2.   

    select column from A
    这里的字段是否包含了函数或序列?
      

  3.   

    确实是使用了函数,因为数据需要做处理。
    现在我是先把数据处理好,存放到表中.然后再用存储过程select这个新的表,就不报这个错了
    为啥在select的时候,不能直接处理?
    不过问题已解决了,谢谢你。
      

  4.   

    因为函数属于本地的,在这个insert过程中,主要是在dblink指向的远端完成,此时需要从远端返回本地来引用函数进行处理
    这种情况下,需要将global_names设为true,然后在远端创建一个指向本地的dblink,并且两个dblink名称要和对方数据库的global name一致使用中间表也是一种方法,可以绕过上面说的问题
      

  5.   

    94说,如果想直接使用函数,必须两边都创建dblink以及global_names设置为true才可以执行?
    不过使用中间表也好,因为数据需要很多处理,直接在里面处理可能还会造成错误和效率。
    哈,谢谢你的解答