Я написал небольшой фрагмент кода ниже, чтобы продемонстрировать, в чем именно заключается проблема, с которой я сталкиваюсь.
DECLARE
TYPE a IS RECORD (a1 NUMBER);
TYPE b IS TABLE OF a
INDEX BY BINARY_INTEGER;
f b;
BEGIN
DBMS_OUTPUT.PUT_LINE ('Begin');
f (1).a1 := 1;
f (2).a1 := 2;
f (2147483647).a1 := 3;
DBMS_OUTPUT.put_line ('2147483647');
f (2147483648).a1 := 4;
DBMS_OUTPUT.put_line ('2147483648');
END;
* Получение следующей ошибки при выполнении кода выше ORA-01426: числовое переполнение ORA-06512: в строке 14
Здесь строка № 14: f (2147483648) .a1: = 4;
*
Я получаю 'переполнение чисел'ошибка для индекса, который я использую.Oracle позволяет мне иметь индекс до 2147483647 (который является не чем иным, как 2 ^ 31), но если я превышаю это значение, я получаю ошибку «числового переполнения».Есть ли способ ее решить?В моем коде мне нужно индексирование, которое пересекает значение 4653474078