我正在移植一個應用程序,該應用程序使用大的Java double值(MAX-1d = + 1.7976931348623155E308)作爲指示條件的信號量。我不知道如何定義列以接受此值而不會產生錯誤:ORA-01426:數字溢出。我嘗試過FLOAT的各種精度(高達126),DOUBLE_PRECISION和BINARY_DOUBLE,並嘗試使用TO_BINARY_DOUBLE的觸發器 - 全部失敗。我正在使用11g。 DB2接受DOUBLE作爲數據類型並處理這個值。在列中插入+ 1.7976931348623155E308 ORA-01426數值溢出
-- DDL for Table TEST (generated from specifying BINARY_DOUBLE for COLUMN1)
CREATE TABLE "DB2ADMIN"."TEST"
("COLUMN1" BINARY_DOUBLE
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM" ;
insert into test (column1) values (+1.7976931348623155E308);
ERROR at line 1:
ORA-01426: numeric overflow
移植從DB2 v9.7移植到Oracle 11g –