2023-11-13 17:11来源:m.sf1369.com作者:宇宇
看你是什么数据库,如果是ORACLE 可以采用ORACLE 的RAC
其实就跟分页获取数据类似,网上这种例子就比较多了,分段获取你可以把当前获取的最大的自增id存储在文件、数据库或者memcache中,下一段用大于这个做条件,然后遍历完再更新这个数就行了。
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件, imp命令可以把dmp文件从本地导入到远处的数据库服务器中。利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。下面介绍的是导入导出的实例。(注意:不用连接到SQL/plus,直接在DOS下就可以导出。)
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中 exp system/manager@TEST file=d:daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出 exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)
3 将数据库中的表inner_notify、notify_staff_relat导出 exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)
4 将数据库中的表table1中的字段filed1以00打头的数据导出exp system/manager@TEST file=d:daochu.dmp tables=(table1) query= where filed1 like '00%' 上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。 也可以在上面命令后面 加上 compress=y 来实现。
数据的导入:
1 将D:daochu.dmp 中的数据导入 TEST数据库中。 imp system/manager@TEST file=d:daochu.dmp imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。 在后面加上 ignore=y 就可以了
从数据库取出来字符串后
用split截成数组,然后循环数组判断
string s=1,2,4,5,7,8,9,10;
int c=0;
int a=0;
int[] ss=s.split(,);
for(int i=0;i{
int b=int.Parse(ss[i]);
if(i==0)
{
a=b;
}
else
{
if(c==4)
{
break;
//连续达到4个,跳出循环
}
a++;
if(a==b)
{
c++;
//符合继续
}
else
{
break;//不符合
}
}
}
using (SqlConnection conn = new SqlConnection())
{
SqlCommand comm= new SqlCommand();
conn.ConnectionString =数据库连接串;
comm.CommandType =CommandType .Text ;
conn.Open();
foreach (DataRow item in hr)
{
string sql= 取得字段并拼接为sql语句;
comm.CommandText =sql;
command.ExecuteNoQuery();
}
conn.Close ();
}