Oracle10g(10.2.0.1)的一个bug

本文介绍Oracle10g(10.2.0.1)中使用MAX/MIN函数输出到字符变量时出现的ORA-06502错误,并提供了解决方案,包括升级版本或使用TO_CHAR函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Oracle10g(10.2.0.1)的一个bug,将MAX/MIN函数的结果输出到一个字符变量时报错:
ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小。
测试代码如:
SQL>
SQL
>declare
2vStrvarchar(20);
3begin
4selectmax('a')intovStrfromdual;
5end;
6/

declare
vStr
varchar(20);
begin
selectmax('a')intovStrfromdual;
end;

ORA
-06502:PL/SQL:数字或值错误:字符串缓冲区太小
ORA
-06512:在line5

SQL
>
这个BUG实在太明显了,在10.2.0.2中已经修复了,bug Number 4458790
10.2.0.2 4458790 + ORA-6502 selecting MAX/MIN into a CHAR variable in PLSQL
如果不想升级可以加to_char函数,改成如下:
SQL>
SQL
>declare
2vStrvarchar(20);
3begin
4selectto_char(max('a'))intovStrfromdual;
5end;
6/

PL
/SQLproceduresuccessfullycompleted

SQL
>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值