我能够让它在 Windows 7 上完全运行,但我必须将它移到 Linux 服务器上。我现在正在 VM 中运行 Ubuntu 16.04.1 LTS 64 位以进行测试,然后再在服务器上复制该过程。
我很确定问题出在我的 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)
Run Code Online (Sandbox Code Playgroud)
控制台
> conn <- odbcDriverConnect('myDSN')
Run Code Online (Sandbox Code Playgroud)
返回错误信息:
Warning messages:
1: In odbcDriverConnect("myDSN") :
[RODBC] …Run Code Online (Sandbox Code Playgroud) 我想创建一个调用的函数merge(),它接受相同结构的两个值,但任何结构,并返回两个结构的合并值。
我希望第一个值优先。例如,如果有两个 structa和b,在调用之后merge(a,b),如果有两个a和b包含的字段,我希望它具有a该给定字段的值。
实现这一点的最佳方法是什么? https://play.golang.org/p/7s9PWx26gfz
type cat struct {
name string
color string
age int
}
type book struct {
title string
author string
}
func main() {
c1 := cat{
name: "Oscar",
color: "",
age: 3,
}
c2 := cat{
name: "",
color: "orange",
age: 2,
}
c3 := merge(c1, c2)
// want: c3 = cat{
// name: "Oscar",
// color: "orange",
// …Run Code Online (Sandbox Code Playgroud) freetds ×1
go ×1
merge ×1
reflect ×1
rodbc ×1
sql-server ×1
struct ×1
ubuntu-16.04 ×1
unixodbc ×1