2 lulu 0308 lulu_0308 于 2017.01.10 16:15 提问

使用程序把一个表里的数据导入到另一个数据库的表里

问题:
把原数据库(Sql Server)里的一个表里的数据,导入到Oracle中,但是在sql server是一张表,现在在Oracle里把它拆成了两个表(关联表),该怎么导数据啊??

解决方案:(C#)
1.使用企业库。
2.web.config里面配置两个链接字符串,一个SQL的,一个Oracle的。
3.使用sql的字符串 创建一个Database db;
4.使用db把数据拿出来,放在DS里面
5.使用Oracle的创建一个Database dboracle
6.for循环 一行一行的读取db的数据
{
使用dboracle 执行insert语句,吧读取出来的db的行给入到Oracle里面去
}

////////求Demo????求Demo????

3个回答

j02842257
j02842257   2017.01.10 17:30
已采纳

SqlConnection SQL_Conn = new SqlConnection("SQLServer数据库连接字符串");
SqlDataAdapter SQL_Dap = new SqlDataAdapter("select 列名1,列名2... from SQL表名", SQL_Conn);
DataSet SQL_ds = new DataSet();
SQL_Dap.Fill(SQL_ds, "SQL表名称");

        OracleConnection Ora_Conn = new OracleConnection("Oracle数据库连接字符串");
        OracleDataAdapter Ora_Dap = new OracleDataAdapter("select 列名1,列名2... from 表名1", Ora_Conn);
        DataSet Ora_da = new DataSet();
        Ora_Dap.Fill(Ora_da, "表1");



        Ora_Dap.InsertCommand = Ora_Conn.CreateCommand();
        Ora_Dap.InsertCommand.CommandText = "insert into  表名1 (列名1,列名2...) values(@列名1变量,@列名2变量...)";


        OracleParameter par;
        par = Ora_Dap.InsertCommand.Parameters.Add("@列名1变量", OracleType.VarChar, 255);
        // 必须设置源列名(SQL表名称中的列名)
        par.SourceColumn = "列名1";
        par.SourceVersion = DataRowVersion.Current;

        par = Ora_Dap.InsertCommand.Parameters.Add("@列名2变量", OracleType.VarChar, 255);
        // 必须设置源列名(SQL表名称中的列名)
        par.SourceColumn = "列名2";
        par.SourceVersion = DataRowVersion.Current;


        for (int i = 0; i < SQL_ds.Tables["SQL表名称"].Rows.Count; i++)
        {
            Ora_da.Tables["表1"].Rows.Add(new string[] { SQL_ds.Tables["SQL表名称"].Rows[i][0].ToString(), SQL_ds.Tables["SQL表名称"].Rows[i][1].ToString() });
        }

        // 使用适配器的更新命令,将内存中的表更新至数据库
        Ora_Dap.Update(Ora_da);

        // 更新第二章表类似
LupeChan
LupeChan   2017.01.10 17:00

教你一个土方法但是很实用,用excel造sql。很想update insert这类的DML用起来特别方便

JE_GE
JE_GE   2017.01.10 17:29

一个查询,一个批量插入

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!