oracle 的 .sql文件数据导入到MSSQL的问题100w条数据(急求方法)

时间:2022-09-20 23:28:44
源:oracle的数据库,把里面的数据和表结构都存在一个.sql文件中了。
数据都是用的insert into +字段名+数据的方式,100万条左右。

问题:如何把这个数据导入到SQL中?

.sql中每隔100条数据就会有一个类似
commit;
prompt 100 records committed...
这样的语句,也就是说100条执行一次,
我现在的方式把这些都去掉,直接在查询分析器里执行语句,我的机器只能执行7000多条就超时或者内存不足了。

请问SQL有类似的语句么?我想把prompt 100 records committed...替换成SQL的语句,
或者有什么办法把这100万条insert into 的记录导入MSSQL2000中?

18 个解决方案

#1


注: commit;  
prompt  100  records  committed...  
是oracle中的语句,

#2


使用DTS导入应该可以的

#3


大宝着啊 

1.你把 prompt 100 records committed
换成 WAITFOR delay '00:00:10'    --也就是说执行100条后停10秒,再接着执行,试试看可以不:)

2.或者把 prompt 100 records committed
换成 waitfor time '21:17'   -到21:17的时候才会执行
然后 执行100条
waitfor time '21:20'   -到21:20的时候才会执行下100条

#4


哈哈,在家还逛这里呀。

#5


呵呵 ,是啊 没事干啊 搞定了吗 ?

#6


我晕,你又在。!!!我用笨方法整进去了。

chjpeng(鹏&静水之潭,苦乐随缘) 
可以说说DTS对于这种insert into 后面带数据的类型,具体如何操作么?比如说分几个步骤,哪步做什么,仅仅扔出来一个概念没什么实际用处。

#7


呵呵 ,我觉得他的意思是 先导入到 oracle 里,然后再利用sql server的导入导出功能吧

#8


你把数据发我邮箱里吧 ,我看看

#9


163的么?

#10


最好的方法就用存储过程,在SQL server 中写个存储过程,插入数据,我用的笔记本可以达到1500条/s的写入速度。一分钟可以写将近9w条。

#11


to: wq_quake(Paladin 象风一样的游侠) 

有具体一点的事例么?和我提的这个问题类似的?

#12


到mysql官方网站下载mysql-migration-toolkit-1.0.25-win32.msi,用它可以直接把oracle的内容导入mysql。

#13


IceCraft(心淡情浓) 

我要导入到MSSQL

#14


不好意思看错了,呵呵

#15


还有其它方法么?

#16


用ue把他的语句部分全部去掉 
只留下数据部分,然后用sql直接导入文本文件

#17


gohst001

如果这么做,因为inset into 的时候带了很多字符,需要替换掉才能用,对于这么大量的数据,只能做参考;
我了解到。oracle导出里面带内容的这种.sql文件,也是用的工具。
MSSQL是否也有类似的工具呢?

#18


在存储过程中写语句,如果表名是动态的就用exec执行,如果不是就直接insert into同时设置好参数,用的时候直接调用存储过程,别忘了设置prepared=true就OK了速度相当的快。

#1


注: commit;  
prompt  100  records  committed...  
是oracle中的语句,

#2


使用DTS导入应该可以的

#3


大宝着啊 

1.你把 prompt 100 records committed
换成 WAITFOR delay '00:00:10'    --也就是说执行100条后停10秒,再接着执行,试试看可以不:)

2.或者把 prompt 100 records committed
换成 waitfor time '21:17'   -到21:17的时候才会执行
然后 执行100条
waitfor time '21:20'   -到21:20的时候才会执行下100条

#4


哈哈,在家还逛这里呀。

#5


呵呵 ,是啊 没事干啊 搞定了吗 ?

#6


我晕,你又在。!!!我用笨方法整进去了。

chjpeng(鹏&静水之潭,苦乐随缘) 
可以说说DTS对于这种insert into 后面带数据的类型,具体如何操作么?比如说分几个步骤,哪步做什么,仅仅扔出来一个概念没什么实际用处。

#7


呵呵 ,我觉得他的意思是 先导入到 oracle 里,然后再利用sql server的导入导出功能吧

#8


你把数据发我邮箱里吧 ,我看看

#9


163的么?

#10


最好的方法就用存储过程,在SQL server 中写个存储过程,插入数据,我用的笔记本可以达到1500条/s的写入速度。一分钟可以写将近9w条。

#11


to: wq_quake(Paladin 象风一样的游侠) 

有具体一点的事例么?和我提的这个问题类似的?

#12


到mysql官方网站下载mysql-migration-toolkit-1.0.25-win32.msi,用它可以直接把oracle的内容导入mysql。

#13


IceCraft(心淡情浓) 

我要导入到MSSQL

#14


不好意思看错了,呵呵

#15


还有其它方法么?

#16


用ue把他的语句部分全部去掉 
只留下数据部分,然后用sql直接导入文本文件

#17


gohst001

如果这么做,因为inset into 的时候带了很多字符,需要替换掉才能用,对于这么大量的数据,只能做参考;
我了解到。oracle导出里面带内容的这种.sql文件,也是用的工具。
MSSQL是否也有类似的工具呢?

#18


在存储过程中写语句,如果表名是动态的就用exec执行,如果不是就直接insert into同时设置好参数,用的时候直接调用存储过程,别忘了设置prepared=true就OK了速度相当的快。