CREATE OR REPLACE FUNCTION test(aquid INT,aquname VARCHAR2,aqubz VARCHAR2) RETURN INT
IS
re int;
BEGIN
SELECT COUNT(1) into re FROM aqu WHERE aquid=aquid;
RETURN re;
END;
aqu表中有数据3768条!
当我执行 select id,name,test(id,name,bz) total from killAqu where name='比比三九';
时结果为3768条,正确数应该为81条才对!
这是哪写错了,迷茫呃!
换成:
execute immediate strsql into re;
这要瓣写法就能返回正确数据!救救我这个菜鸟吧,大大们! ------解决方案--------------------
select id,name,test(id,name,bz) total from killAqu where name='比比三九'
返回的是killAqu中的数据啊,和test没关系啊,TEST每次都固定返回一条数据啊 ------解决方案--------------------
select id,name,test(id,name,bz) total from killAqu where name='比比三九' AND EXISTS(
SELECT 1 FROM aqu WHERE squ.aquid=killAqu.ID)
外面需要增加过滤条件。。 ------解决方案-------------------- SELECT COUNT(1) into re FROM aqu WHERE aquid=aquid;
参数名最好不要和列名一样,容易出问题 ------解决方案--------------------