通过SqlBulkCopy复制table数据到Oracle
时间: 2024-01-04 21:02:54 浏览: 136
实现SQL Server与Oracle之间数据复制
您可以使用以下步骤将SQL Server表数据复制到Oracle:
1. 在Oracle数据库中创建一个新的表,与SQL Server表具有相同的结构。
2. 在SQL Server中打开查询窗口,编写一个SELECT语句来获取要复制的数据。
3. 使用SqlDataReader对象读取SELECT语句的结果。
4. 使用Oracle.DataAccess.Client命名空间中的OracleBulkCopy类将数据复制到Oracle表中。
以下是示例代码:
```
// SQL Server连接字符串
string sqlConnectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;";
// Oracle连接字符串
string oracleConnectionString = "Data Source=myOracleDataSource;User Id=myUsername;Password=myPassword;";
// 要复制的SQL Server表
string sqlTableName = "myTable";
// 在Oracle中创建表
string createTableSql = "CREATE TABLE myTable (column1 varchar2(50), column2 number(10,2), column3 date)";
using (SqlConnection sqlConnection = new SqlConnection(sqlConnectionString))
{
sqlConnection.Open();
// 获取要复制的数据
string selectSql = "SELECT column1, column2, column3 FROM " + sqlTableName;
SqlCommand sqlCommand = new SqlCommand(selectSql, sqlConnection);
SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();
using (OracleConnection oracleConnection = new OracleConnection(oracleConnectionString))
{
oracleConnection.Open();
// 在Oracle中创建表
OracleCommand oracleCommand = new OracleCommand(createTableSql, oracleConnection);
oracleCommand.ExecuteNonQuery();
// 使用OracleBulkCopy将数据复制到Oracle表中
OracleBulkCopy oracleBulkCopy = new OracleBulkCopy(oracleConnection);
oracleBulkCopy.DestinationTableName = "myTable";
oracleBulkCopy.WriteToServer(sqlDataReader);
}
}
```
请注意,您需要安装Oracle.DataAccess NuGet包才能使用OracleBulkCopy类。
阅读全文