我现在需要做的事把Oracle中的数据导入到sql server中,但是不知道怎么写将从Oracle中得到的数据插入到sql数据库中的sql语句,因为我要导入多个表的数据,每个表的字段和字段类型都不一样,我想动态的生成这条插入语句,不知道怎么实现........请高手指点怎么生成这条语句????或者还有更好的办法不用生成这条insert语句就可以直接导入????????????
解决方案 »
- 隆重推出最方便实用的国产免费的 Oracle 开发工具 - Oracle SQL Handler (免装客户端,跨平台能运行于LINUX及MAC,双语界面)
- oracle 数据恢复,发生ora-01219问题,请教各位大虾
- Oracle 10G 的管理员密码丢了,如何找回来,非常急!
- .net连接oracle的一个问题,求救
- 如何手动删除OC4J
- Oracle 表中,每行最多可以存储多少字节?
- 微软震荡波补丁包似乎与oracle冲突,请问如何解决,急
- 请教各位高手,在Oracle中如何使用序列?序列有什么作用?
- 请帮忙Global Temporary Table
- 为什么dbms_metadata.getddl('TABLE','TEST')取到的表结构不全
- 实在弄不出来了!!希望各位帮帮忙!!
- oracle中一个小小的问题
while (odrInsert.Read())//odrInsert要导入sql的数据集
{
insertStr = "insert into " + tableStr + " values(";//插入语句
subInsertStr = "";
while (odr.Read())//odr是存有表的字段类型的数据集
{
typeStr = subGetType(odr.GetValue(1).ToString().Trim()); //subGetType是我自己写的一个函数得 到sql中对应的数据类型,
if (typeStr == "CHAR" || typeStr == "NCHAR" || typeStr == "VARCHAR" || typeStr == "NVARCHAR" || typeStr == "DATETIME" || typeStr == "CHAR(18)" || typeStr == "IMAGE" || typeStr == "VARBINARY(MAX)")//读数据类型进行判断是否需要加单引号我只找到这些数据类型 呵呵,对于别的还没想。。
{
subInsertStr = subInsertStr + "'" + odrInsert.GetValue(colCount) + "'" + ",";//加单引号 }
else
{ subInsertStr = subInsertStr + odrInsert.GetValue(colCount) + ",";//不加单引号
}
colCount++;
}
insertStr = insertStr + subInsertStr;
insertStr = insertStr.Substring(0, insertStr.Length - 1).ToString().Trim();
insertStr = insertStr + ")";
SqlCommand sqlCmd = new SqlCommand(insertStr, sqlMyConn);
sqlCmd.ExecuteNonQuery();
}
这个代码过不去 错误是因为第二次循环的时候odr.read()就不执行了。。请高手改改。
好像你是读出oracle的数据,再塞到sqlserver里面吧?
先建好sqlserver的表结构(老师不会要求这个也是动态的吧),
然后读oracle数据写到文件,写完再批量的塞进sqlserver
一条条塞的方法不好,中间出错了不好回滚.
其实sqlserver貌似,好像能建立到oracle的链接服务器的,没试过,如果行的话,就能直接拉取数据的应该...sqlldr在操作系统级调用很爽,呼的一下就能把文件里面的暴多数据塞进oracle的表了
sqlserver的bcp没用过,但肯定也行的
你可以程序把oracle数据全部读出来写到文件,再调bcp一下子塞进sqlserver看看..