Fetch(conn,statement) returning int64 instead of float or double

3 views (last 30 days)
Frank Schiro
Frank Schiro on 25 Dec 2018
Commented: James Maniscalco on 19 May 2020
I am trying to import data from SQLite with fetch. It is importing the data as int64. I would like it to import with the data type of double because with int 64 I am either getting 1 or 0, but the values I am looking at are 0.63, ect.
How can I make fetch(conn,statement) import as datetype double instead of int64? I can't find it in the documentation.
These are the commands I am running :
statement=strcat("select val from historical where sym like '",SYM,"' and Tag like 'EPS'");
y=fetch(conn,statement);
Data I am getting back looks like this :
Columns 1 through 36
1 0 0 0 0 0 0 0 0 2 6 0 0 0 0 1 0 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0
But the data in my SQLite database looks like this:
1
0.63
0.71
-0.13
0.45
0.48
0.49
0.46
0.24
2.19
6.12
0.38
0
0.6
0.78

Answers (1)

Hitesh Kumar Dasika
Hitesh Kumar Dasika on 27 Dec 2018
This is a known issue in MATLAB R2018b. This issue is fixed in the latest update of R2018b. Please check for the product updates of your installation.
  3 Comments
James Maniscalco
James Maniscalco on 19 May 2020
In the end I managed to rewrite my app to use a JDBC driver connection instead of SQLite for MATLAB. The JDBC version returns the correct values from the database.
As for making the switch, the two methods aren't totally interchangeable vis-a-vis function names and data types (e.g. cell vs table) but they are decently close. I would have preferred to use SQLite for MATLAB to avoid external dependencies, but oh well.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!