![MS SQL Server 2008:如何将所有表导出为 CSV?](https://linux22.com/image/532402/MS%20SQL%20Server%202008%EF%BC%9A%E5%A6%82%E4%BD%95%E5%B0%86%E6%89%80%E6%9C%89%E8%A1%A8%E5%AF%BC%E5%87%BA%E4%B8%BA%20CSV%EF%BC%9F.png)
我必须从 MS SQL Server 迁移,现在使用部分从我的旧表中获取的数据创建一个新的 ORACLE 数据库。
为此,我需要从数十个表中获取数据作为 unicode CSV 或 TXT 文件,并以“|”分隔字段。
糟糕的是,MS SQL Server 默认的导出管理器每次只能导出一张表,而且配置每张表的导出选项需要花费相当长的时间。我开始手动导出,但导出到第 10 张表时,我就开始紧张了。
您知道如何将所有表从 SQL 服务器导出为 csv 或 txt 吗?
答案1
更可靠的解决方案是使用 Oracle Migration Workbench。这曾经是一个独立于 Oracle 的实用程序,但现在已包含在Oracle SQL 开发人员。如果您和 CLOB/BLOB 数据类型,那么这就是您要走的路。您还应该阅读 Oracle文档关于如何迁移,因为 SQL Developer 迁移界面不是很直观。
如果你确实想将所有表格导出到 csv,你可以使用业务连续性计划或者安全信息系统有一篇很好的文章简单谈话使用一些 t-sql 并为数据库中的所有表生成 bcp 导出命令。您还可以创建简单的 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
答案2
如果您可以访问 SQL Management Studio(我相信免费的 Express 版本也具有此功能),您可以右键单击数据库并选择任务 -> 导出数据。作为您的目标,选择“平面文件”目标,您可以调整格式(固定宽度、csv 等)。
答案3
您可以从 Oracle 获取一个名为 Oracle Migration Workbench 的工具,该工具专为满足您的需求而设计。此工具可以将包括用户在内的整个架构从 MS Sql 迁移到 Oracle。
我已经使用过它很多次了,它非常棒。
以下是更多信息http://download.oracle.com/docs/html/B10259_01/toc.htm
J
答案4
为此,您可以尝试使用 dbForge Studio for SQL Server 和 Oracle。开始页面,菜单“数据库”,然后导出数据,接下来在向导中选择“CSV”和数据库的其他选项。