是否有读取 SQL 命令文本文件的 MacOS ODBC 驱动程序?
我一直在寻找可以读取以 Microsoft SQL Server 格式导出的已保存 .SQL 文件的 MacOS iODBC 驱动程序,但没有成功。有吗?
我们在一个应用中存储了大量研究数据,这些数据可以导出为 Excel 电子表格或 SQL 文件(例如,充满 SQL CREATE TABLE
和 INSERT
语句的文本文件)。我们需要将这些数据导入到 另一个在 MacOS 下运行并可以导入 Excel 文件的应用程序 (Stata 9),其自己的格式,或来自 ODBC 源。因此,我需要一个可以读取纯 SQL 文件作为其源的 ODBC 驱动程序。 我们不需要实际与 MSSQL 数据库对话的驱动程序,因为这里没有实际的数据库;只是一个普通的 .SQL 文件,其中包含 MSSQL 样式的命令。
不幸的是,默认的 MacOS 安装似乎没有附带任何 ODBC 驱动程序,甚至没有用于读取平面文件或 SQLite 数据库的驱动程序。
当前移动此数据的工作流程 - 将其从 DatStat 导出为 Excel 电子表格,打开该电子表格并通过以下方式修复它手符合Stata的需要,然后保存并重新导入到Stata - 非常耗费人力,而且还损失很多变量等重要元数据描述和注释。
I've been searching without luck for a MacOS iODBC driver that can read saved .SQL files exported in Microsoft SQL Server format. Does one exist?
We've got a large pile of research data stored in one app that can export as Excel spreadsheets or SQL files (eg, a text file full of SQL CREATE TABLE
and INSERT
statements). We need to import this data into another app (Stata 9) that runs under MacOS and can import Excel files, its own format, or from an ODBC source. So, I need an ODBC driver that can read plain SQL files as its source. We don't need a driver that actually talks to an MSSQL database, because there is no actual database here; just a plain .SQL file with MSSQL-style commands in it.
Unfortunately, the default MacOS install seems to come with no ODBC drivers whatsoever, not even one for reading flat files or SQLite databases.
The current workflow for moving this data — exporting it from DatStat as an Excel spreadsheet, opening that spreadsheet and fixing it by hand to conform to Stata's need, then saving and reimporting into Stata — is ridiculously labor-intensive and also loses a lot of important metadata like variable descriptions and annotations.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为这里最好的做法是将数据从 DatStat 加载到数据库,然后将其加载回 Stata。首先,将数据从 DatStat 导出到 .sql 文件。我不熟悉 DatStat,但如果您可以批量或通过命令行执行此操作,那就最好了。您可以使用 -shell- 命令访问 Stata 中操作系统的终端。获得 .sql 文件(例如 foo.sql)后,您可以使用以下 Stata 代码将其发送到数据库,然后导入到 Stata 中。
如果您认为不会再次使用该数据库并且不希望它占用空间,您甚至可以发出最终命令来清理数据库中的表。使用类似的内容:
是的,如果您的数据集很大,这可能会很慢,但是一旦您的数据位于数据库中,这可能会很好,因为您可以一次查询其中的一部分,而不是导入整个数据。
最后,您提到 MS SQL Server 不存在适用于 Mac 的 ODBC 驱动程序。如果是这种情况,您可能需要安装开源数据库系统之一,例如 MySQL 或 PostgreSQL。我不是 Mac 用户,但 Mac 上必须存在这些驱动程序。
祝你好运!
I think that best thing to do here is load the data from DatStat to a database and then load it back into Stata. First, export your data from DatStat to a .sql file. I'm not familiar with DatStat, but if you can do this in bulk or via the command line it would be best. You can access your OS's terminal in Stata by using the -shell- command. After you have a .sql file, say foo.sql, you can use the following Stata code to send it to a database and then import into Stata.
You could even issue a final command to cleanup the tables in the database if you don't think you'll use this database again and you don't want it taking up space. Use something like:
Yes, this will probably be slow if your dataset is large, but it could be nice once your data is in the database because you can query parts of it at a time instead of importing the whole thing.
Lastly, you mentioned that no ODBC driver for Mac exists for MS SQL Server. If that is the case, you may want to install one of the open-source database systems like MySQL or PostgreSQL. I'm not a Mac user but drivers for these must exist for mac.
Good luck!