R语言RODBC连接MySQL时查询、保存、更新数据(sqlQuery、sqlSave、sqlUpdate)时报错问题及解决方案

本文介绍了一个常见问题:在使用sqlQuery进行数据查询时,字符串类型的字段可能被错误地识别为整数。通过设置as.is参数为TRUE,可以确保字符串字段正确读取,避免数据类型转换错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. sqlQuery 数据查询时,默认会把某些字符串字段当作数值读进来,数据库中原始数据如下,其中companyCode字段为字符串类型:

把表读进来后,字符串变成了数值,如下:

> read.data <- sqlQuery(conn_source, 'SELECT * FROM test')
> class(read.data$companycode)
[1] "integer"
> head(read.data)
  id       time companycode
1  1 2018-03-30           1
2  2 2018-03-31           1
3  3 2018-04-02           1
4  4 2018-04-04           1
5  5 2018-04-01           1
6  6 2018-04-03           1

解决方案:增加sqlQuery属性,

> read.data <- sqlQuery(conn_source, 'SELECT * FROM test', as.is = TRUE)
> class(read.data$companycode)
[1] "character"
> head(read.data)
  id       time companycode
1  1 2018-03-30         001
2  2 2018-03-31         001
3  3 2018-04-02         001
4  4 2018-04-04         001
5  5 2018-04-01         001
6  6 2018-04-03         001

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值