问题如下:
数据库A处于 M服务器上
数据库B处于N 服务器上
现在通过B创建一个DBLINK访问A;
在B数据库内通过select 创建基于A数据库内某表的表结构 的一个表
现在发现所创建的表内varchar2型的字段长度均比 原表长度的大一倍!
这个是什么原因呢 该怎么解决
建表:
create table test as select * from temp@dblink 还望各位帮忙看看

解决方案 »

  1.   

    数据库版本不同造成的,  这个先建表:create table test as select * from temp@dblink t where 1=2;
    然后再插入数据: insert into test(v1,v2,v3,v4,...) select t.v1,t.v2,t.v3,t.v4,... from temp@dblink t;
      

  2.   

    flush_520   说的是不错 确实是版本不同,不过我使用先建表的方式然后插入数据的方式依然不行,我是8i 数据迁到9i
    ,问题继续。
    再次感谢各位的回答,希望下面的回答更加精彩
      

  3.   

    表先建起 写个过程来倒吧 用游标 一条一条的循环放进去  http://topic.csdn.net/u/20090626/10/fb6eb9d7-dcb0-4722-9d08-2e704e901de2.html    把delete换成insert