问题:
把原数据库(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????
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);
// 更新第二章表类似
教你一个土方法但是很实用,用excel造sql。很想update insert这类的DML用起来特别方便
一个查询,一个批量插入