1.该方法 基本不能用于实际开发中 ,仅供学习参考 
public string Copy()
{
//要复制的表名
string table = "AAAAA";
//构造连接字符串
OracleConnectionStringBuilder builder1 = new OracleConnectionStringBuilder();
builder1.ConnectionString = "Data Source=192.168.0.141/orcl;User ID=MY_TP_ECDB;Password=MY_TP_ECDB;Unicode=true"; OracleConnectionStringBuilder builder2 = new OracleConnectionStringBuilder();
builder2.ConnectionString = "Data Source=192.168.0.141/orcl;User ID=BZECDB;Password=BZECDB;Unicode=true"; //调用复制数据库函数
InsertTable(builder1.ConnectionString, builder2.ConnectionString, table); return default(string);
}
       /// <summary>
/// 将巴中商城拷贝到绵阳
/// </summary>
private static void InsertTable(string conString1, string conString2, string tabStr)
{
OracleConnection connMY = new OracleConnection();
//connMY.ConnectionString = "Data Source=192.168.0.141/orcl;User ID=MY_TP_ECDB;Password=MY_TP_ECDB;Unicode=true";
connMY.ConnectionString = conString1;
connMY.Open(); OracleConnection connBZ = new OracleConnection();
connBZ.ConnectionString = conString2;
connBZ.Open(); //将巴中数据库拷贝到绵阳,那么先读出绵阳原来的数据保存在dataSet1中
OracleDataAdapter adapter1 = new OracleDataAdapter("select * from " + tabStr , connMY);
DataSet dataSet1 = new DataSet(); if (dataSet1 != null)
{
adapter1.Fill(dataSet1, tabStr);
}
OracleDataAdapter adapter2 = new OracleDataAdapter("select * from " + tabStr , connBZ);
DataSet dataSet2 = new DataSet();//巴中数据 OracleCommand cmd2 = new OracleCommand("select count(*) from " + tabStr, connBZ);
Object res2 = cmd2.ExecuteScalar(); if (res2 != null)
{
int nCount = Convert.ToInt32(res2.ToString());
if (nCount == )
{
connBZ.Close();
connMY.Close();
return;
}
}
//填充DataSet2 巴中的数据
if (dataSet2 != null)
{
adapter2.Fill(dataSet2, tabStr);
}
//复制数据
for (int j = ; j < dataSet2.Tables[].Rows.Count; j++)
{
dataSet1.Tables[].LoadDataRow(dataSet2.Tables[].Rows[j].ItemArray, false);
}
//将DataSet变换显示在与其关联的目标数据库
OracleCommandBuilder cb = new OracleCommandBuilder(adapter1);
adapter1.Update(dataSet1, tabStr);
cb.RefreshSchema();
Console.WriteLine("表" + tabStr + "复制成功!");
connBZ.Close();
connMY.Close();
}

2.巴中数据库同步到绵阳.rar  该项目为实际开发时的源码,因两地数据库不对外开发,Dblink 不能使用. 我的思路是巴中放一个windowsService

绵阳放一个webservice,巴中数据库相关表

建立触发器 对表的增删改 都记录在一张表中City_cfjlb(触发记录表),windowsService根据这张表的数据调用webservice 并将数据传递到绵阳.绵阳数据库也需另建立一张表,保存表名称,巴中对应表id ,绵阳对应表id

相关触发器代码 如下:

基于Oracle触发器 存储过程

3,如果量数据库可以创建DBlink: 那就简单了:

Oracle两个数据库联合查询,使用Oracle DBLink

4.数据库创建主从关系:博主还未用到过次解决方案~~~

C#拷贝一个库的表到另外一个库中(的四种方式)的更多相关文章

  1. eclipse查看一个方法被谁引用(调用)的快捷键四种方式

    1.(首推)双击选中该方法,Ctrl+Alt+H 如果你想知道一个类的方法到底被那些其他的类调用,那么请选中这个方法名,然后按“Ctrl+Alt+H”, Eclipse就会显示出这个方法被哪些方法调用 ...

  2. Hive创建表|数据的导入|数据导出的几种方式

    * Hive创建表的三种方式 1.使用create命令创建一个新表 例如:create table if not exists db_web_data.track_log(字段) partitione ...

  3. JavaScript表单提交四种方式

    总结JavaScript表单提交四种方式 <!DOCTYPE html> <html> <head> <title>JavaScript表单提交四种方式 ...

  4. JavaScript确定一个字符串是否包含在另一个字符串中的四种方法

    一.indexOf() 1.定义 indexOf()方法返回String对象第一次出现指定字符串的索引,若未找到指定值,返回-1.(数组同一个概念) 2.语法 str.indexOf(searchVa ...

  5. java 四种方式实现字符流文件的拷贝对比

    将D:\\应用软件\\vm.exe  拷贝到C:\\vm.exe   四种方法耗费时间对比  4>2>3>1 package Copy; import java.io.Buffere ...

  6. 手写面试编程题- 数组去重 深拷贝 获取文本节点 设置奇数偶数背景色 JS中检测变量为string类型的方法 第6题闭包 将两个数组合并为一个数组 怎样添加、移除、移动、复制、创建和查找节点? 继承 对一个数组实现随机排序 让元素水平 垂直居中的三种方式 通过jQuery的extend方法实现深拷贝

    第1题==>实现数组去重 通过 new Set(数组名) // var arr = [12, 12, 3, 4, 5, 4, 5, 6, 6]; // var newarr1 = new Set ...

  7. 四种方式带你层层递进解剖算法---hash表不一定适合寻找重复数据

    一.题目描述 找出数组中重复的数字 > 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次. ...

  8. python操作mysql数据库读取一个数据库的表写入另一个数据库

    写这个肯定是工作需要了,不啰嗦,直接说事 我现在有两台主机,一台是公司主机,一台是客户主机,要求把公司主机上的三个表同步到客户主机上的数据库 注意是同步,首先就得考虑用linux定时任务或者主从复制, ...

  9. C# MVC提交表单的四种方式(转)

    Mvc 提交表单的4种方法全程详解(转) 一,MVC  HtmlHelper方法 Html.BeginForm(actionName,controllerName,method,htmlAttribu ...

随机推荐

  1. Jmeter并发测试

    链接推荐:https://blog.csdn.net/weixin_41291554/article/details/80492276

  2. pdf.js 使用实例(app直接预览pdf格式的文档)

    pdf.js可以实现在html下直接浏览pdf文档,是一款开源的pdf文档读取解析插件 pdf.js主要包含两个库文件,一个pdf.js和一个pdf.worker.js,,一个负责API解析,一个负责 ...

  3. 前端开发模拟数据------webpack-api-mocker

    应用场景: 在实际的项目开发过程中,一般都会进行前后端分离的开发模式,前端通过mock或者其他的插件模拟后台返回数据的功能.在常用的webpack构建工程项目中,通过和webpack-dev-serv ...

  4. Springboot 使用过滤器进行加密解密(二)

    之前写过一篇关于过滤器实现加密解密功能的文章,但是在实际开发业务中发现,还是有一些问题的,在此特地说明. 第一:过滤器走两遍的问题: 1.过滤器上,添加了两个注解 第一个:@Compent   将此F ...

  5. Linux压缩和解压缩

    1.tar.gz tar.gz这种格式是Linux下使用得最多的压缩格式.它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率. tar -zcvf archive_name.tar.gz ...

  6. Spock - Document - 03 - Data Driven Testing

    Data Driven Testing Peter Niederwieser, The Spock Framework TeamVersion 1.1 Oftentimes, it is useful ...

  7. ubuntu16.04中如何启用floodlight的其中一种方式

    1. 提前一台安装好mininet,另一台安装好floodlight 2. 在mininet里面的custom文件夹下自定义文件ProjectGroup10_Topology.py from mini ...

  8. 巴黎游戏周: PS4独占游戏《重力少女2》

    http://blog.us.playstation.com/2015/10/27/gravity-rush-2-coming-to-north-america-on-ps4/

  9. Java递归:一个NB自慰的操作

    递归的核心思想:自身调用自身 示例一:求5的阶乘 常规方法: 使用while循环 1 public class Demo01 { 2 3 public static void main(String[ ...

  10. SparkStream:4)foreachRDD详解

    转载自:http://blog.csdn.net/jiangpeng59/article/details/53318761 foreachRDD通常用来把SparkStream运行得到的结果保存到外部 ...