oracle存储过程中 未找到数据 异常的问题。。。
表结构如下CREATETABLETYIntegralRule(IDNUMBERNOTNULLPRIMARYKEY,RuleVARCHAR2(50)NOTNULL,Rule...
表结构如下
CREATE TABLE TYIntegralRule(
ID NUMBER NOT NULL PRIMARY KEY,
Rule VARCHAR2(50) NOT NULL,
RuleNum INT NOT NULL,
MaxPrice INT,
MinPrice INT,
MaxLog INT
);
序列create sequence seq_TYIntegralRule increment by 1 start with 1 nomaxvalue nocache;
插入数据
insert into TYIntegralRule(Id,Rule,Rulenum,maxlog) values(seq_TYIntegralRule.Nextval,'登陆',1,3);
在plsql中查询的时候,可以查询到数据。select * from TYIntegralRule
建立存储过程
create or replace procedure Login()
as
loginIntegral int;--登陆一次加多少分
begin
select rulenum into loginIntegral from TYIntegralRule;
。。。。。。。。。。。存储过程太长,省略调。。。。。。。。。
end;
在执行到该句的时候会发生异常,未找到数据。
正式写的时候我有加条件。确实不是找到太多数据,而是未找到数据。想问问大家,这个问题出在哪儿啊? 展开
CREATE TABLE TYIntegralRule(
ID NUMBER NOT NULL PRIMARY KEY,
Rule VARCHAR2(50) NOT NULL,
RuleNum INT NOT NULL,
MaxPrice INT,
MinPrice INT,
MaxLog INT
);
序列create sequence seq_TYIntegralRule increment by 1 start with 1 nomaxvalue nocache;
插入数据
insert into TYIntegralRule(Id,Rule,Rulenum,maxlog) values(seq_TYIntegralRule.Nextval,'登陆',1,3);
在plsql中查询的时候,可以查询到数据。select * from TYIntegralRule
建立存储过程
create or replace procedure Login()
as
loginIntegral int;--登陆一次加多少分
begin
select rulenum into loginIntegral from TYIntegralRule;
。。。。。。。。。。。存储过程太长,省略调。。。。。。。。。
end;
在执行到该句的时候会发生异常,未找到数据。
正式写的时候我有加条件。确实不是找到太多数据,而是未找到数据。想问问大家,这个问题出在哪儿啊? 展开
2个回答
展开全部
解决这个办法很多,按提问者的意思,异常肯定是no data found,这个时候你需要检查在哪出现的这个异常,如果数据不多的话,你可以用一条一条记录的去试,如果数据量大的话那直接在每个select前先选出count(*) into counts,当
counts<> 0的时候再让它执行下边的语句,或者直接存储工程中加异常处理的语句,我一般遇到这种情况都是用第一种,很简单但是很实用,屡试不爽。哈哈,如果有机会再交流交流
counts<> 0的时候再让它执行下边的语句,或者直接存储工程中加异常处理的语句,我一般遇到这种情况都是用第一种,很简单但是很实用,屡试不爽。哈哈,如果有机会再交流交流
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询