Windows 7で完全に動作させることができましたが、Linuxサーバーに移動する必要があります。私はサーバ上でプロセスを複製する前に、Ubuntu 16.04.1 LTS 64ビットをVMで実行しています。UbuntuのRを使用してODBC上でMicrosoft SQL Serverに接続
私の問題は、私のFreeTDSまたはDSNセットアップのどこかにあると確信しています。
時間を無駄にするのをやめ、Pythonを使うだけでいいですか?または、ODBCとunixODBCで同じ問題が発生しますか?
全Rスクリプト:
library(RODBC)
#saving from a .csv to dataframe df
df <- read.csv("./Documents/test.csv")
#creating connection to db
conn <- odbcDriverConnect('myDSN')
#writing
sqlSave(conn, df, tablename = 'dbo.test0', append = F, rownames = F, verbose = TRUE, safer = true, fast = F)
Rコンソール
> conn <- odbcDriverConnect('myDSN')
エラーメッセージを返す:
Warning messages:
1: In odbcDriverConnect("myDSN") :
[RODBC] ERROR: state IM002, code 0, message [unixODBC][Driver Manager]Data source name not found, and no default driver specified
2: In odbcDriverConnect("myDSN") : ODBC connection failed
は、ここに私のODBCとFreeTDSの設定です:
/etc/odbc.ini
[myDSN]
APP = unixodbc
Description = master on DBNAME
Driver = TDSdriver
Server = SERVNAME
Database = DBNAME
Port = 1433
Username = UNAME
Password = PW
#Trace = No
#TraceFile = /var/log/freetds/freetds--odbc.log
/etc/odbcinst.ini
[FreeTDS]
Description = v0.91 with protocol v7.2
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
[myDSN0]
APP = unixodbc
Description = user on DBNAME
Driver = TDSdriver
Server = SERVNAME
Database = DBNAME
Port = 1433
Username = UNAME
Password = PW
#Trace = No
#TraceFile = /var/log/freetds/freetds--odbc.log
[global]
# TDS protocol version
; tds version = 4.2
# Whether to write a TDSDUMP file for diagnostic purposes
# (setting this to /tmp is insecure on a multi-user system)
; dump file = /tmp/freetds.log
; debug flags = 0xffff
# Command and connection timeouts
; timeout = 10
; connect timeout = 10
# If you get out-of-memory errors, it may mean that your client
# is trying to allocate a huge buffer for a TEXT field.
# Try setting 'text size' to a more reasonable limit
text size = 64512
[DSN0]
host = IPADDRESS
port = 1433
tds version = 7.2
client charset = UTF-8
私はこれがR固有ではないと思います。私はLinuxからSQL Serverに接続して以来、しばらくしてきましたが、Pythonでも苦労していることを覚えておいてください。 – duffn
SQL Serverの[MicrosoftのODBC Linux](https://msdn.microsoft.com/en-us/library/hh568451(v = sql.110).aspx)ドライバを使用しないのはなぜですか?また、あなたのiniファイルは、 'myDSN'、' myDSN0'と 'DSN0'の異なる名前の* lot *を使用することに注意してください。 –