gpt4 book ai didi

r - sqlSave 用空格填充数字/整数

转载 作者:行者123 更新时间:2023-12-04 11:23:50 24 4
gpt4 key购买 nike

我有一些数据试图上传到数据库中的表中。例如:

df <- data.frame(name = c("Fred", "George", "David"), data = c(10, 100, 1000))

当我使用 RODBC::sqlSave函数(使用 fast = FALSE 一次插入一行)但是,它用空格填充数字或整数值。所以在数据库中, data下的条目列将是 " 10", " 100", "1000" .例如,如果我要上传上述数据框,然后使用以下命令查询该数据
tmp = RODBC::sqlQuery(ch, query = "SELECT * FROM My_Tbl")

然后输出将如下所示:
> str(tmp)
'data.frame': 3 obs. of 2 variables:
$ name : chr "Fred" "George" "David"
$ data : chr " 10" " 100" "1000"
data 的数据库数据类型列的类型是 varchar(10)因为数据有时有一个前导字母。然而,在我与之合作的情况下,只涉及数字。

我的问题是为什么 sqlSave函数填充数字数据,我能做些什么来阻止它这样做?

注意:我知道它是 sqlSave导致问题的函数,因为当我使用 verbose = TRUE 时,可以看到 INSERT的输出声明和确实填充了数据。此外,出于示例的目的,这是由数据组成的。

最佳答案

在 sqlSave 的帮助下:

If fast = FALSE all data are sent as character strings. If fast = TRUE, integer and double vectors are sent as types SQL_C_SLONG and SQL_C_DOUBLE respectively.



所以试试没有 fast=FALSE选项。你也可以试试 typeInfo选项。

关于r - sqlSave 用空格填充数字/整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31832432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com