是否有一个MacOS ODBC驱动程序读取SQL命令文本文件?

时间:2011-07-18 02:47:33

标签: sql macos odbc stata

我一直在寻找可以读取以Microsoft SQL Server格式导出的已保存.SQL文件的MacOS iODBC驱动程序。是否存在?

我们在one app中存储了大量研究数据,可以导出为Excel电子表格或SQL文件(例如,一个充满SQL CREATE TABLEINSERT语句的文本文件)。我们需要将此数据导入到在MacOS下运行的another app(Stata 9),并且可以导入Excel文件,自己的格式或ODBC源。所以,我需要一个可以读取普通SQL文件作为源的ODBC驱动程序。 我们不需要实际与MSSQL数据库对话的驱动程序,因为这里没有实际的数据库;只是一个带有MSSQL样式命令的普通.SQL文件。

不幸的是,默认的MacOS安装似乎没有任何ODBC驱动程序,甚至没有一个用于读取平面文件或SQLite数据库。

当前用于移动此数据的工作流程 - 将其从DatStat作为Excel电子表格导出,打开该电子表格并手动修复以符合Stata的需要,然后保存并重新导入Stata - 是可笑的劳动密集型,也失去了许多重要的元数据,如变量描述和注释。

1 个答案:

答案 0 :(得分:2)

我认为最好的办法是将DatStat中的数据加载到数据库中,然后将其加载回Stata。首先,将数据从DatStat导出到.sql文件。我不熟悉DatStat,但如果您可以批量或通过命令行执行此操作,那将是最好的。您可以使用-shell-命令访问Stata中的操作系统终端。有了.sql文件后,比如说foo.sql,你可以使用下面的Stata代码将它发送到数据库,然后导入到Stata。

odbc sqlfile("foo.sql"), dsn("DataSourceName")
odbc load, exec("SELECT * FROM CustomerTable") dsn("DataSourceName")

如果你认为你不再使用这个数据库并且你不想占用空间,你甚至可以发出一个最终命令来清理数据库中的表。使用类似的东西:

odbc exec("DROP TABLE CustomerTable")

是的,如果您的数据集很大,这可能会很慢,但是一旦您的数据在数据库中,它可能会很好,因为您可以一次查询部分数据而不是导入整个数据。

最后,您提到MS SQL Server不存在适用于Mac的ODBC驱动程序。如果是这种情况,您可能需要安装一个开源数据库系统,如MySQL或PostgreSQL。我不是Mac用户,但mac的驱动程序必须存在。

祝你好运!