如果字段一样,先把远程数据读到一个DATASET中,再写到SQL SERVER中
或用SQL SERVER的导入导出工具
也可以用SQL SERVER的LINKSERVER直接连ORACLE
还可以开两个CONNECTION,一个连ORACLE,做一循环,用DATAREAD去语ORACLE数据库的数据,再拼SQL语句去向SQL SERVER插
.......
方法很多,呵呵

解决方案 »

  1.   

    to hater:
    还可以开两个CONNECTION,一个连ORACLE,做一循环,用DATAREAD去语ORACLE数据库的数据,再拼SQL语句去向SQL SERVER插我就是想做两个连接,可我不知道是用dataset读数据好还是用dataread读数据好
                  写也一样,我不知道用命令直接写好,还是先写入dataset好              大家帮忙啊,谢谢
      

  2.   

    dataread比较好,处理起来速度比较快
      

  3.   

    是不是这样?
    oracle-dataset=select * from table where ?
    sqlserver-dataset=select * from table where ?
    where not oracle-dataset.eof()
        sqlserver-dataset.add
        sqlserver-dataset.field1=oracle-dataset.field1
        sqlserver-dataset.field2=oracle-dataset.field2
        ......
    loop-----------------------------------------------------------
      

  4.   

    dataread需要长时间连接数据库吗?如果我还没处理完,这个时候网断了,会造成这个后果:我读回并写入了一些记录,但不完全,而此时系统好像不好控制,只能将本次写入的记录删掉
      

  5.   

    To 1、我想从远程oracle数据库读取数据循环写入到本地SQLserver数据库(几千条记录),代码该怎么写?
    应该说导入和导出数据没有sql命令可选。如果装了Sql Server操作很方便速度也很快。如果想用代码来实现我想速度会很慢,而且并不能把所有的数据都导入,操作过程如下:
    1.先连接Oracle(用OleDb的Api)取出所有的数据(只能取数据库和表)存到DataSet对象里,关闭数据库;
    2.用1取出的数据建立sql语句(创建数据库、数据表、数据列,注意DataColumn的属性Unique),将这些语句用sqlclient的Api一一实现;
    3.用1取出的数据循环取出行数据,插入到sql表中。To 2、处理本地SQLserver数据库是用dataset好呢,还是用命令行好?
    是指那种处理?To 3、循环处理记录该怎么写?
    比如已经有个DataTable的对象datatable1,要从这个读数据如:
    for(int i=0;i<datatable1.Rows.Count;i++){
    //datatable1.Rows[i][columnname],i是行号,columnname是你要取的那一列数据的列名
    }