我必须从MS sql Server迁移,现在创建一个新的ORACLE数据库,其中部分数据来自我的旧表.
为此我需要从几十个表中获取数据作为unicode CSV或TXT文件,字段用“|”分隔.
不好的是MS sql Server的默认导出主机一次只能导出单个表,并且为每个表配置导出选项需要相当长的时间.我开始手动导出它们但是我在第10桌上受到了神经的攻击.
你知道如何从sql服务器将所有表导出到csv或txt吗?
解决方法
更强大的解决方案是使用Oracle Migration Workbench.这曾经是Oracle的独立实用程序,但现在包含在
Oracle SQL Developer中.如果你和CLOB / BLOB数据类型那么这就是你要走的路.您还应该阅读有关如何迁移的Oracle
documentation,因为sql Developer迁移界面不是很直观.
如果你想要将所有表导出到csv,你可以使用BCP或SSIS.在simple-talk有一篇非常好的文章,关于使用一些t-sql并为数据库中的所有表生成bcp export命令.您还可以创建简单的SSIS包,以使用平面文件目标任务将所有表导出到csv.
这里有快速的东西脏,将为您生成BCP命令.在SSMS中运行它,在命令提示符下运行输出.
USE AdventureWorks SELECT 'bcp ' + QUOTENAME(DB_NAME()) + '.' +QUOTENAME(SCHEMA_NAME(schema_id)) + '.' +QUOTENAME(name) + ' '+'out'+' ' + name + '.csv -w -t"|" -E -S ' + @@servername + ' -T' FROM sys.objects WHERE TYPE='u' AND is_ms_shipped=0