我正在使用 DBI 包和 odbc 包来连接到 SQL Server 数据库。我正在尝试使用field.types
参数指定的列类型编写一个表。出于某种原因,这不起作用,并且 R 在编写时会选择自己的数据类型。
一个可重现的例子:
table <- data.frame(
col1 = 1:2,
col2 = c("a", "b")
)
con <- dbConnect(
odbc::odbc(),
dsn = "dsn",
UID = login,
PWD = password,
Port = 1433
)
dbWriteTable(
conn = con,
value = table,
name = "tableName",
row.names = FALSE,
field.types = c(
col1 = "varchar(50)",
col2 = "varchar(50)"
)
)
结果:一个名为“tableName”的表,其中包含列
[col1] [int] NULL,
[col2] [varchar](255) NULL
我的问题:
如何更正上面的示例,以便数据库上的列类型
varchar(50)
适用于两列?field.types
对于其他示例,如何正确使用该参数?
我想知道的是,我应该使用什么“类型”:我需要“int”还是“integer”还是“INT”(R 区分大小写,所以可能很重要)?然后,我在哪里可以找到这些数据类型的列表?我曾尝试使用 dbDataType,但使用此函数返回的类型也不起作用。还是我做错了什么?
提前感谢您的帮助。