如何在pl⼀sql脚本中调用自定义函数?

2024-11-29 10:19:59
推荐回答(3个)
回答1:

执行没有问题? 你这个 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;

回答2:

1.回复二楼的,函数是能够返回boolean型的
2.你要看显示结果,得去PL的outpu窗口看。你运行了试一下

回答3:

是需要调用的,调用传值就可以了
select CheckUser(1) from dual