日期:2014-05-16  浏览次数:20389 次

存储过程 Select into报错

select travelid?? into iFindTravelid
? from t_bluesky_pro_travelpolicy
?where name='(国际)';
报错ORA-01403:未找到数据;
当然,是由于无查询结果导致的,但是我不想要先用select count(*)做一次统计,然后再执行一次select,于是从网上查询解决办法,发现可以使用Exception。我的代码如下:
declare
dname varchar(200);

begin
?-- if (1=1) then
??? select name? into dname
???? from t_bluesky_pro_travelpolicy
???? where travelid='8a861ca73adfa6013f7a165fba1f42';
?????????????????????????????
??? EXCEPTION??
??? WHEN NO_DATA_FOUND THEN???
??? dname := '';????

???????????????????????????
?--? end if;
?????????????
? end;
发现一旦把if块儿放出来以后,就报以下错误:


。百度了很久也没找到问你,后经师傅指点,试着把exception要放在所有代码之后,就执行成功了。