2

Microsoft SQL Server 形式でエクスポートされた保存済みの .SQL ファイルを読み取ることができる MacOS iODBC ドライバーを探していましたが、うまくいきませんでした。存在しますか?

Excel スプレッドシートまたは SQL ファイル (たとえば、SQLとステートメントでいっぱいのテキスト ファイル) としてエクスポートできる1 つのアプリに大量の研究データが保存されています。このデータを、MacOS で実行され、Excel ファイル、独自の形式、または ODBC ソースからインポートできる別のアプリ(Stata 9) にインポートする必要があります。そのため、プレーンな SQL ファイルをソースとして読み取ることができる ODBC ドライバーが必要です。ここには実際のデータベースがないため、実際に MSSQL データベースと対話するドライバーは必要ありません。MSSQL スタイルのコマンドを含む単純な .SQL ファイルです。CREATE TABLEINSERT

残念ながら、デフォルトの MacOS インストールには、ODBC ドライバーがまったく含まれていないようです。フラット ファイルや SQLite データベースを読み取るためのドライバーも含まれていません。

このデータを移動するための現在のワークフロー — DatStatから Excel スプレッドシートとしてエクスポートし、そのスプレッドシートを開いて Stata のニーズに合わせて手作業で修正し、保存してStataに再インポートする— は途方もなく労働集約的であり、多くの重要なものを失います変数の説明や注釈などのメタデータ。

4

1 に答える 1

2

ここで行う最善の方法は、DatStatからデータベースにデータをロードしてから、それをStataにロードし直すことだと思います。まず、データをDatStatから.sqlファイルにエクスポートします。私はDatStatに精通していませんが、これを一括して、またはコマンドラインから実行できる場合は最適です。-shell-コマンドを使用して、StataのOS端末にアクセスできます。foo.sqlなどの.sqlファイルを作成したら、次のStataコードを使用してデータベースに送信し、Stataにインポートできます。

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

このデータベースを再度使用する予定がなく、スペースを占有したくない場合は、最後のコマンドを発行してデータベース内のテーブルをクリーンアップすることもできます。次のようなものを使用します:

odbc exec("DROP TABLE CustomerTable")

はい、データセットが大きい場合、これはおそらく遅くなりますが、データ全体をインポートするのではなく、一度にデータの一部をクエリできるため、データがデータベースに追加されると便利な場合があります。

最後に、MSSQLServer用のMac用のODBCドライバーは存在しないとおっしゃいました。その場合は、MySQLやPostgreSQLなどのオープンソースデータベースシステムの1つをインストールすることをお勧めします。私はMacユーザーではありませんが、これらのドライバーはMac用に存在している必要があります。

幸運を!

于 2011-08-05T20:23:11.063 に答える