在oracle执行存储过程出现: 在此select语句中缺少into子句
count1:=0;selectcount(*)intocount1fromcheckTmp;if(count1=0)thenbegininsertintocheckTm...
count1:=0;
select count(*) into count1 from checkTmp;
if(count1=0) then
begin
insert into checkTmp(instanceID,DID,expressID) values ('00000000-0000-0000-0000-000000000000',0,0);
end;
end if;
select * from checkTmp order by expressID;
主要是这个查询语句 展开
select count(*) into count1 from checkTmp;
if(count1=0) then
begin
insert into checkTmp(instanceID,DID,expressID) values ('00000000-0000-0000-0000-000000000000',0,0);
end;
end if;
select * from checkTmp order by expressID;
主要是这个查询语句 展开
3个回答
展开全部
oracle的存储过程中不能直接select,必须要将结带碰消果放到变吵猛量中,即类似select count(*) into count1 from checkTmp这种写法。
直接写成select * from checkTmp order by expressID肯定会报错的,因为oracle不知蠢知道你要select干什么。
直接写成select * from checkTmp order by expressID肯定会报错的,因为oracle不知蠢知道你要select干什么。
追问
select * from checkTmp order by expressID;我要的是把这个checkTmp表按照排序查出来,是有多个值,应该不可以用一个变量接收吧select count(*) into count1 from checkTmp order by expressID;你这样不是查询有多小数据了吗??
追答
oracle里的存储过程不能直接返回查询结果,如果你想将查询结果返回到前台,可以使用游标。select into的用法只能返回一条数据,无数据或者多数据的时候都会报错。
展开全部
最后面那句也衫镇得加上INTO,得把查询出来的结果放到变模伏量里。旦塌携
select 1 INTO XXX from checkTmp order by expressID;
select 1 INTO XXX from checkTmp order by expressID;
追问
select * from checkTmp order by expressID;这是要查询多条语句的,怎么赋值into,求详细一点
追答
ORACLE 存储过程 SELECT 1 INTO AA FROM DUAL 只能返回一条数据,多个字段。
要查询多条语句可以用游标,
~~~例子~~~
FOR A1 IN (select * from checkTmp order by expressID)
LOOP
--判断各种条件
begin
这里你可以把查询结果增删改
insert 了delete 了等等
end;
END LOOP;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询