1

有一个带有类型的包。

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。

请告诉我可能是什么问题?

4

0 回答 0