有一个带有类型的包。
CREATE OR REPLACE PACKAGE MY_TYPES IS
PRAGMA SERIALLY_REUSABLE;
SUBTYPE my_number IS NUMBER(3,0);
END MY_TYPES;
/
有一个程序:
DECLARE
PROCEDURE print(my_number_i IN my_types.my_number) IS
BEGIN
dbms_output.put_line(my_number_i);
END;
BEGIN
print(my_number_i => 35);
END;
/
问题是这样的调用会在 PL/SQL Developer 中产生错误。
ORA-06502: PL/SQL: 数字或值错误: 数字精度太大。
但是,如果您替换 value my_number_i => !=35
,则该过程完成。
但是,如果您从 SQL Developer 运行它,则一切正常。如果您通过 SQL*Plus 运行它,它也可以工作。它仅不适用于 PL/SQL Developer。
请告诉我可能是什么问题?