2017年5月11号下午到2017年5月12号上午,这个函数把我折磨地精疲力尽。不过,最终还是满足了软件开发的需求。首先,RODBC之sqlSave函数调试记录:
1、rownames算在内,会作为一列;
2、字符会为varchar(255),数值会为float;
3、SQLServer中,datatime类型,默认显示格式为“2017-05-01 12:30:00.000”,在R中,以字符串型,as.Date型,
as.POSIXct型存入SQLServer中预定义的表,效果一样。
其次,说一下在尝试的过程中遇到的困难:
1 未在数据库中建立数据表,直接存储,生成错误。
错误原因:R数据框里含有非数值非字符的日期时间类型,在默认的情况下,只可以存储数值和字符型,在数据库中生成对应 名称的数据表,里面的字段类型为float和varchar(255),所以,在尝试时,去掉日期时间就可以了。
2 指定存储rownames和指定主键。
参数说明:如果不想存储rownames,则指定参数rownames=FALSE,也就不牵扯主外键的问题。
最后,说一下自己的应用实例:
第一步:在SQLServer中建数据表T_ConvergenceBoxCVS,需要指定清楚字段的数据类型,int、datatime等。
第二步:在R里生成一个实例的数据框T_ConvergenceBoxCVS,里面指定好数据类型。
第三步:在R中使用sqlSave函数将R数据框T_ConvergenceBoxCVS写入到新建的数据库表中,因为数据库中已经新建了数据库表,所以tablename="T_ConvergenceBoxCVS",append=TRUE即可。
希望可以给大家一个参考,好的参考。