Problem writing decimal number to Oracle DB number field

1 次查看(过去 30 天)
I am having problems writing numeric values to a database using the DB toolbox. Consider the following example:
conn = database.ODBCConnection('DB','user','pw');
arrColnames = {'IDENT','VAL'};
arrData = {'A' 1;'B' 0.1};
insert(conn,'MYTABLE',arrColnames,arrData);
Where the table is created on an Oracle database as:
CREATE TABLE MYTABLE
( "IDENT" VARCHAR2(4000 BYTE),
"VAL" NUMBER
);
Now the insert command works fine for integer values (entry 'A' in my array), but for numbers with after-comma digits I get the following error ('Ungültige Zahl' means invalid number):
Error using database.ODBCConnection/insert (line 264)
ODBC Driver Error: [Oracle][ODBC][Ora]ORA-01722: Ungültige Zahl

采纳的回答

Christoph
Christoph 2016-3-18
I actually managed to solve it myself. For some reason, the database does not accept NUMBER-fields created without a scale (= number of after-comma digits). It works if you provide a scale explicitly:
CREATE TABLE MYTABLE
( "IDENT" VARCHAR2(4000 BYTE),
"VAL" NUMBER(*,5)
);

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Database Toolbox 的更多信息

标签

产品

Community Treasure Hunt

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

Start Hunting!

Translated by