首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

Oracle触发器字符串缓冲区太小的错误!

2014-01-28 
定义触发器 ... declare D_sid varchar2(100) ... beginselect CASEWHEN nvl(sname, ) is null THEN cas

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

        

热点排行