如何考虑“长”;整数;当使用R连接HANA时,是否将其作为SQL查询中的字符串?
我正在使用R包RODBC连接HANA。其中一列类似于长整数,但实际上用作字符串,如2772161413309、4239530000000239。SQL将这些数据作为整数。在R中,这些数字用科学符号表示,如2.77136e+12。我从本列中提取一些值的代码是:如何考虑“长”;整数;当使用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
> 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