2017-11-02 10 views
0

FreeTDSとunixODBCをインストールして設定し、正常に動作していることを確認した後、RODBCを設定しようとしています。ただし、RコンソールでODBCデータソースを表示しようとすると、次の結果が表示されます。RODBCをインストールしてunixODBCを使用するにはどうすればよいですか?

> odbcDataSources() 
named character(0) 

私はFreeTDSのドライバを使用しようとすると、私は次のような結果を得ることができます。エラーに基づいて

>odbcDriverConnect("driver={FreeTDS};server=xx.xx.xx.xx;port=1433;database=XXXX_Analysis;trusted_connection=true;UID=********;PWD=********") : 
[RODBC] ERROR: state IM003, code 0, message [iODBC][Driver Manager]Specified driver could not be loaded 

RODBCはiODBCを代わりにunixODBCのを使用しようとしているように、それが見えます。 unixODBCを使用するようにRODBCを設定する方法がわかりません。

答えて

0

デフォルトのRODBCパッケージのインストールは、unixODBCでは動作しません。 RODBCを再コンパイルしてインストールするプロセスです。

  1. 現在の汎用RODBCパッケージをRコンソールから削除します。

    >remove.packages("RODBC") 
    Removing package from ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library’ 
    (as ‘lib’ is unspecified) 
    
  2. RODBCのソースをダウンロードしてください。

    https://cran.r-project.org/src/contrib/RODBC_1.3-15.tar.gz

  3. あなたのunixODBCライブラリが置かれている場所に、環境変数DYLD_LIBRARY_PATHを設定します。私は自分のライブラリが/ usr/local/libにあるようにhomebrewを使ってunixODBCをインストールしました。

    export DYLD_LIBRARY_PATH=/usr/local/lib

  4. それが新しいライブラリの場所をピックアップだから今RODBを再インストールしてください。

    R CMD INSTALL /Users/xxxxxx/Downloads/RODBC_1.3-15.tar.gz

あり、出力のかなりのビットですが、最後の方に見て、あなたはこのようなものが表示されるはずです。

​​

ライブラリの場所が選択されたことを示す-L/usr/local/libに注目してください。

これで、unixODBCが提供するODBC接続を確認できるはずです。再起動したRコンソールに戻ると、次のように入力してRODBCがunixODBCを使用していることを確認できます。

> library("RODBC") 
> odbcDataSources() 
     MYMSSQL1  MYMSSQL XXXXXXXXX_C_DB XXXXXXXX-SQL1 
    "FreeTDS"  "FreeTDS"  "FreeTDS"  "FreeTDS" 

私は正しい軌道に乗るのを手伝ってくれたhiltmonに感謝します。

関連する問題