使用C#将表数据从Oracle复制到SQL Server,可以通过以下几个步骤实现:
Data Source=数据源名称;User Id=用户名;Password=密码;
Data Source=服务器名称;Initial Catalog=数据库名称;User Id=用户名;Password=密码;
以下是一个示例代码:
using System;
using System.Data;
using Oracle.DataAccess.Client;
using System.Data.SqlClient;
using System.Data.Common;
namespace OracleToSQLServer
{
class Program
{
static void Main(string[] args)
{
string oracleConnectionString = "Data Source=数据源名称;User Id=用户名;Password=密码;";
string sqlConnectionString = "Data Source=服务器名称;Initial Catalog=数据库名称;User Id=用户名;Password=密码;";
string oracleSelectCommand = "SELECT * FROM oracle_table";
string sqlInsertCommand = "INSERT INTO sql_table (column1, column2, column3) VALUES (@column1, @column2, @column3)";
using (OracleConnection oracleConnection = new OracleConnection(oracleConnectionString))
{
oracleConnection.Open();
using (SqlConnection sqlConnection = new SqlConnection(sqlConnectionString))
{
sqlConnection.Open();
using (SqlCommand sqlCommand = new SqlCommand(sqlInsertCommand, sqlConnection))
{
sqlCommand.Parameters.Add("@column1", SqlDbType.VarChar, 50);
sqlCommand.Parameters.Add("@column2", SqlDbType.VarChar, 50);
sqlCommand.Parameters.Add("@column3", SqlDbType.VarChar, 50);
using (OracleCommand oracleCommand = new OracleCommand(oracleSelectCommand, oracleConnection))
{
using (OracleDataReader oracleDataReader = oracleCommand.ExecuteReader())
{
using (SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(sqlConnection))
{
sqlBulkCopy.DestinationTableName = "sql_table";
sqlBulkCopy.BatchSize = 1000;
while (oracleDataReader.Read())
{
sqlCommand.Parameters["@column1"].Value = oracleDataReader["column1"];
sqlCommand.Parameters["@column2"].Value = oracleDataReader["column2"];
sqlCommand.Parameters["@column3"].Value = oracleDataReader["column3"];
sqlBulkCopy.WriteToServer(oracleDataReader);
}
}
}
}
}
}
}
}
}
}
注意:以上代码仅供参考,实际操作时需要根据实际情况进行修改。
中国数据库前世今生
DB TALK 技术分享会
云+社区技术沙龙[第17期]
云+社区技术沙龙[第19期]
DB-TALK 技术分享会
DBTalk技术分享会
云+社区技术沙龙 [第30期]
第四期Techo TVP开发者峰会
领取专属 10元无门槛券
手把手带您无忧上云