Reputation: 2253
I am using R package RODBC to connect HANA. One of the columns is like a long integer, but actually used as a string such as 2772161413309, 4239530000000239. SQL takes such data as integers. In R, these numbers are shown in scientific notation like 2.77136e+12. my code that pick up some values from this column is:
> 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,' '))
I have the following error information:
[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
Here, "_tmSum"."/BIC/ZTMCARDNO" is the comlumn including long integers. I want to consider it to be string and pick up some values that is not 0.
Upvotes: 0
Views: 912
Reputation: 10388
I'm pretty sure that the problem here is not with the way R
and SAP HANA
handle floats.
In both systems 2.77136e+12 is recognised correctly:
R:
> x <- 2.77136e+12
> x
[1] 2.77136e+12
> typeof(x)
[1] "double"
HANA:
select to_double('2.77136e+12') from dummy;
> 2771360000000
The error you receive, however, seems to come from the data processing within the "SAPB1P"."/BIC/AZ_RT_A212"
view.
Could it be that in it some data type conversion is performed? Based on the name it looks like a BW table - often the BW data types are mapped to character type SQL data types. So, it might be worthwhile checking what data types are used in the model.
Upvotes: 1
Reputation: 2253
I think I have a misunderstanding about SQL. When the integer is really long, like 13 or more digits. SQL will consider it as a string. Those integers shows in R in scientific notation way because R considers them as integers. So, in SQL query, just using character related methods to deal with them is OK.
Upvotes: 0