
在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;
主要是这个查询语句 展开
展开全部
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的用法只能返回一条数据,无数据或者多数据的时候都会报错。

2022-08-05 广告
苏州蓝晓生物科技有限公司。标准化核心产品:公司拥有完整的琼脂糖介质、葡聚糖介质、聚甲基丙烯酸酯介质生产线,年产分离介质50000L,产品质量稳定并达到国际领先水平。核心优势:公司核心技术人员拥有近二十年不同基质的基球开发和官能化的丰富技术经...
点击进入详情页
本回答由苏州蓝晓生物科技有限公司_提供
展开全部
最后面那句也得加上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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询