char buf1[256];
char buf2[256];//打开源数据库
db.open( DBSourcePath );//打开目标数据库
db2.open( DBTargetPath );
//开始合并
memset( buf1, 0, sizeof( buf1 ) );
memset( buf2, 0, sizeof( buf2 ) );
strcpy( buf1, "select * from Table1 where statue = '2';" );
Query q = db.execQuery( buf1 );
while( !q.eof() )
{
for(int i=0;i<8;i++) //Table1每条记录有8个项
{
Field[i] = q.fieldValue(i); //获取每一项的数据
}
q.nextRow();
sprintf( buf2, "insert into Table2 values ('%s','%s','%s','%s','%s','%s','%s', '%s');",Field[0], Field[1], Field[2], Field[3], Field[4], Field[5], Field[6], Field[7] ); //拼装数据
db2.execDML( buf2 ); //插入数据到表2
} //合并结束
db.close();
db2.close();相当于添加表1的数据到表2,除了上面的那种方法外,有没有其它的方法?
能不能不用读出每一条记录的每一项,用拼装的方式插入到另一张表中去?
数据库复制
char buf2[256];//打开源数据库
db.open( DBSourcePath );//打开目标数据库
db2.open( DBTargetPath );
//开始合并
memset( buf1, 0, sizeof( buf1 ) );
memset( buf2, 0, sizeof( buf2 ) );
strcpy( buf1, "select * from Table1 where statue = '2';" );
Query q = db.execQuery( buf1 );
while( !q.eof() )
{
for(int i=0;i<8;i++) //Table1每条记录有8个项
{
Field[i] = q.fieldValue(i); //获取每一项的数据
}
q.nextRow();
sprintf( buf2, "insert into Table2 values ('%s','%s','%s','%s','%s','%s','%s', '%s');",Field[0], Field[1], Field[2], Field[3], Field[4], Field[5], Field[6], Field[7] ); //拼装数据
db2.execDML( buf2 ); //插入数据到表2
} //合并结束
db.close();
db2.close();相当于添加表1的数据到表2,除了上面的那种方法外,有没有其它的方法?
能不能不用读出每一条记录的每一项,用拼装的方式插入到另一张表中去?
数据库复制
解决方案 »
- 省市区数据只有最末级有数据,需要一级一级向上累加的sql
- ORA-00600: internal error code, arguments [4194]错误 在线等,急。
- 不用plsql的for loop等循环控制,只用简单的oracle的sql写
- 如何在pl/sql取得操作系统的类型?
- !Oracle分区内建索引为何无效?
- Linux AS5 安装 oracle 10g的问题
- 这样的SQL语句怎么写
- ORA-01480:STR 绑定值的结尾Null字符缺失,网上找了很多,一一不如人意,特此求贴
- select j.user_id,s.username from AR_JPUSH_USER j join sysuser s on s.userid = j.
- 请问exp和imp如何查看导入导出花费的时间
- Oracle事务问题
- oracle 11g连接问题
insert into Table2(列名1,列名2)select 列名1,列名2 from Table1 where statue = '2'
insert into Table2
select * from Table1 where statue = '2'
但数据源不一样,Table1 在20130925.db里面,Table2 在20130926.db里面.
在20130925.db下创建一个dblink指向20130926.db
然后在执行
insert into Table2(列名1,列名2)select 列名1,列名2 from Table1@dblink名称 where statue = '2'