ORA-06502 仅在 SQLPLUS 中出错

ORA-06502 Error Only in SQLPLUS

我在开发服务器上有一个 Oracle 11 数据库。我正在尝试执行存储过程:

declare
    date_start varchar2(15);
    date_end varchar2(15);
begin
    Fecha_inicio := '01/01/2014';
    Fecha_fin := '01/01/2016';
    FCBK.PKG_PACKAGE.Generate(Fecha_inicio,Fecha_fin);
end;  

如果我从 SQL Developer 或 SQL*Plus 在我个人的 Windows 机器上执行程序,程序没有问题。

如果我在开发服务器(IBM AIX 机器)中从 SQL*Plus 执行过程,过程结束时出现以下错误:

ORA-06502: PL/SQL: numeric or value error: character string buffer too small

这可能是由于 2 个 SQL 客户端的 NLS 配置不同所致。快速检查可能是首先 运行

ALTER SESSION SET nls_date_format = 'dd/mm/yyyy'

或以其他方式包括

EXECUTE IMMEDIATE 'ALTER SESSION SET nls_date_format = ''dd/mm/yyyy''';

在你的程序中。

要检查您当前的 NLS 设置,请查询 "nls_session_parameters" table,其中列出了当前用户会话的配置。

SELECT *
FROM   nls_session_parameters

问题已解决。是包的内部错误。感谢大家的回答。