执行没有问题? 你这个 Tisubsection.aename%TYPE 的 Type 到底是什么? 如果是 VARCHAR2,我用 select CheckUser('ABC') from dual 根本就没法执行,说是 “(Error): ORA-06552: PL/SQL: Statement ignored ORA-06553: PLS-382: 表达式类型错误”哦。
检查一下你的字段类型吧。
另外,我上网查了一下,Function 的返回值,似乎不支持 Boolean,我把你的函数返回值类型改一下,就没有任何问题了。
CREATE OR REPLACE FUNCTION checkuser (f_user tisubsection.aename%TYPE)
RETURN VARCHAR2 --函数返回类型
IS
v_usercount NUMBER;
BEGIN
SELECT COUNT (aename)
INTO v_usercount
FROM tisubsection
WHERE aename = f_user;
IF (v_usercount > 0)
THEN
RETURN 1;
ELSE
RETURN 0;
END IF;
END checkuser;
SELECT checkuser('abc') FROM dual;
1.回复二楼的,函数是能够返回boolean型的
2.你要看显示结果,得去PL的outpu窗口看。你运行了试一下
是需要调用的,调用传值就可以了
select CheckUser(1) from dual