在 Oracle 11g 数据库上运行以下代码时,我得到 ORA-01426: numeric overflow:
DECLARE
TYPE my_type
IS
RECORD
(
a NUMBER,
b VARCHAR2(10) );
TYPE my_table
IS
TABLE OF my_type INDEX BY BINARY_INTEGER;
my_var my_table;
my_num1 NUMBER;
my_num2 NUMBER;
BEGIN
my_num1 := 1;
my_num2 := 781301042106240;
IF NOT my_var.EXISTS(my_num1) THEN
dbms_output.put_line('my num1 works');
END IF;
IF NOT my_var.EXISTS(my_num2) THEN
dbms_output.put_line('my num2 works');
END IF;
END;
看来 EXISTS 方法无法处理大量数据。但它不应该接受 NUMBER 数据类型作为输入吗?Oracle文档没有太大帮助,因为它没有提到参数的数据类型。
有谁知道 EXISTS 可以接受的最大精度是多少?