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;
参数名最好不要和列名一样,容易出问题
------解决方案--------------------
正解,变量名不要与字段用相同的名字。。
------解决方案--------------------
帮顶,等大牛解决
------解决方案--------------------
很是支持,以前我就遇到过这样的情况。
------解决方案--------------------
马了个克的。