Problem writing decimal number to Oracle DB number field

조회 수: 3 (최근 30일)
Christoph
Christoph 2016년 3월 16일
답변: Christoph 2016년 3월 18일
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