C#写一个查询并插入Oracle
来源:互联网 发布:淘宝客户回访话术 编辑:程序博客网 时间:2024/06/07 16:20
有关数据的插入问题,因为项目上的需要,现在需要把旧库里的数据插入到新库里来,所以才不得不这样做。
本来是写了条这样的语句(INSERT INTO TABLE SELECT ........FROM TABLE2 ) 直接可以了事,这样做不可否认它是可行的。但又有一个问题在于,如果插入的时候 有巨大数量量,怎么办呢?再如果,我们在执行插入语句的时候,中途断了又如何预处理呢?等等。
鉴于上面的情况,小弟不得不写一个程序让它跑。不过,问题是10w的数据跑一跑是没问题,但如果是,1亿那就是个问题了。不说多了,现在把我的关键代码贴出来给大家看看,写的不好啊。
string sql = "select t.*,t.rowid from alarm_test t where rownum<=" + countall + " and id>=" + alarmID;
解释一下这句代码的意思:select t.*,t.rowid 意思:rowid就是唯一标志记录物理位置的一个id 并且将 alarm_test 这个表的全部信息查出来。from ..指定数据源也就是表。 where 并是查询条件,rownum <="+....+" 意思是查询出多少条数据出来,countall 这个是一个int 类型的变量,and id>="+alarmID; 意为:查询出大于或等于这个id 的全部数据。alarmID 也是一个int 类型的变量。
例如我要查询出1W条数据,ID从10开始 sql语句便是:select t.*,t.rowid from alarm_test t where rownum<=10000 and id>=10 ;
那么我们又如何将这1W条数据分批插入到Oracle 中去呢?我用的办法是 写两个for 循环来读取数据并插入数据,第一个for循环读取 总行数,数据放在 DataSet 里 所以为,for (int i = 0; i < Set.Tables["alarm"].Rows.Count; i++) 这取得我们查询出来的总数 并且以它为for循环的条件。在它的下面还有一个for循环,是每次循环1000条数据 并插入库里。
值得提一下的是:alarmID 是从配置文件取出来的。
这就是我写的,效率不是很高 但还算安全。出了问题之后,比如断电了,电脑出问题了,服务器 出问题了。我们的alarmID就会自己写到配置文件去 ,下次打开的时候就直接从这个id开始取数据。
- C#写一个查询并插入Oracle
- Oracle跨数据库查询并插入
- Oracle跨数据库查询并插入
- Oracle跨数据库查询并插入
- Oracle跨数据库查询并插入
- oracle跨数据库查询数据并插入
- oracle 将查询结果创建表并插入
- C#如何操作Oracle并向数据库插入数据
- Oracle查询一个表的数据插入到另一个表
- oracle 插入一个从别处查询获得字段的值
- oracle批量查询插入
- oracle查询插入
- 写一个简单的存储过程,并C#调用
- oracle建立学生,课程以及选课表并进行插入查询操作
- mysql从其他表中查询记录并插入另外一个表中
- 创建一个分区表,并插入一些数据,同时查询出每个分区的数据
- Oracle Blob查询和插入
- 查询Oracle最近插入语句
- MyISAM 与InnoDB 数据表类型区别
- Flex:对象的深度拷贝
- 给项目经理的一份android自动化测试报告调研
- Android学习系列(1)--为App签名(为apk签名)
- DOS命令大全
- C#写一个查询并插入Oracle
- 你应该知道的Node.js扩展模块——Hashish
- 现在仓库管理与传统的区别
- Andorid的优缺点
- 客户管理——如何利用好客户这把双刃剑
- SelectNodes 与 XPath
- mongodb指南(十三) - developer zone - 数据类型和约定(二)之Object ID
- 分享10个便利的HTML5/CSS3框架
- Android Map开发基础知识学习笔记