Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何考虑“长”;整数;当使用R连接HANA时,是否将其作为SQL查询中的字符串?_Sql_R_Type Conversion_Hana_Rodbc - Fatal编程技术网

如何考虑“长”;整数;当使用R连接HANA时,是否将其作为SQL查询中的字符串?

如何考虑“长”;整数;当使用R连接HANA时,是否将其作为SQL查询中的字符串?,sql,r,type-conversion,hana,rodbc,Sql,R,Type Conversion,Hana,Rodbc,我正在使用R包RODBC连接HANA。其中一列类似于长整数,但实际上用作字符串,如2772161413309、4239530000000239。SQL将这些数据作为整数。在R中,这些数字用科学符号表示,如2.77136e+12。我从本列中提取一些值的代码是: > a <- sqlQuery(ch,paste(' SELECT "_tmSum"."/BIC/ZTMCARDNO" FROM "SAPB1P"."/BIC/AZ_RT_A

我正在使用R包RODBC连接HANA。其中一列类似于长整数,但实际上用作字符串,如2772161413309、4239530000000239。SQL将这些数据作为整数。在R中,这些数字用科学符号表示,如2.77136e+12。我从本列中提取一些值的代码是:

> a <- sqlQuery(ch,paste(' SELECT "_tmSum"."/BIC/ZTMCARDNO"
                           FROM "SAPB1P"."/BIC/AZ_RT_A212" "_tmSum"
                           WHERE "_tmSum"."/BIC/ZTMCARDNO">0 AND "_tmSum"."CALDAY" BETWEEN',StartDate,'AND',EndDate,'  '))

这里,“_tmSum”。/BIC/ztmcardino”是包含长整数的组合列。我想把它看作是字符串并拾取一些不是0的值。 我想我对SQL有误解。当整数很长时,比如13位或更多位。SQL将其视为字符串。这些整数以科学符号的方式显示在R中,因为R将它们视为整数。所以,在SQL查询中,只使用与字符相关的方法来处理它们是可以的

我很确定这里的问题不在于
R
saphana
句柄浮动的方式。 在这两个系统中,2.77136e+12被正确识别:

R:

但是,您收到的错误似乎来自
“SAPB1P.”/BIC/AZ_RT_A212“
视图中的数据处理

是否可能在其中执行了某些数据类型转换?基于名称,它看起来像一个BW表-通常BW数据类型映射到字符类型SQL数据类型。因此,检查模型中使用的数据类型可能是值得的

[1] "S1000 339 [SAP AG][LIBODBCHDB DLL][HDBODBC] General error;339 invalid number:  [6930] exception 6930:\nims_search_api/Search/PartSearchImpl.cpp:427\nattribute value is not a number\n"                                                                                                               
[2] "[RODBC] ERROR: Could not SQLExecDirect ' SELECT                        \"_tmSum\".\"/BIC/ZTMCARDNO\"\n                       FROM \"SAPB1P\".\"/BIC/AZ_RT_A212\" \"_tmSum\"\n    
> x <- 2.77136e+12
> x
[1] 2.77136e+12
> typeof(x)
[1] "double"
select to_double('2.77136e+12') from dummy;

> 2771360000000