定义触发器
...
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;
就行了
------解决方法--------------------------------------------------------
结果集有多少记录呀, 只有一条记录吗?