Oracle触发器字符串缓冲区太小的错误!
点击右边红色标题查看本文完整版:Oracle触发器字符串缓冲区太小的错误!
定义触发器
...
declare
D_sid varchar2(100);
...
begin
? select CASE? WHEN nvl(sname, '') is null THEN cast(sid AS varchar(100)) ELSE sname END into D_sid
? from student;
end;
...
Oracle数据库中sname varchar2(36),sid number(10)
执行触发器的时候 报错:字符串缓冲区太小 错误行数在case when那一行
请大家帮忙解决下
------解决方法--------------------
你将else sname 改成else cast(sname as varchar(100))试试
其实你写成
select nvl(sname,to_char(sid)) into D_sid
? from student;
就行了
------解决方法--------------------
结果集有多少记录呀, 只有一条记录吗?