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
问题已解决。是包的内部错误。感谢大家的回答。
我在开发服务器上有一个 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
问题已解决。是包的内部错误。感谢大家的回答。