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

CREATEORREPLACEFUNCTIONCheckUser(f_userTisubsection.aename%TYPE)RETURNBOOLEAN--函数返回类型... CREATE OR REPLACE FUNCTION CheckUser
(
f_user Tisubsection.aename%TYPE
)
RETURN BOOLEAN --函数返回类型
IS
v_userCount NUMBER;
BEGIN
SELECT COUNT(aename) INTO v_userCount FROM Tisubsection WHERE aename = f_user;
IF (v_userCount > 0) THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
END CheckUser;

DECLARE
user Tisubsection.aename%TYPE := 'jian';
a BOOLEAN;
BEGIN
IF CheckUser(user) THEN
DBMS_OUTPUT.PUT_LINE('用户 ' || user || ' 存在');
ELSE
DBMS_OUTPUT.PUT_LINE('用户 ' || user || ' 不存在');
END IF;
END;
-------------------------------------
以上代码执行没有问题?(放在pl的test script中 按 F8)
,为什么没有结果显示出来请高手赐教。
是不是自定义的函数 也需要像过程一样存起来才能用啊??
还是脚本语法有问题呢?
1楼的朋友 用了那个传值 还是没有显示东西出来,

我只想看到'用户 ' || user || ' 存在'或者'用户 ' || user || ' 不存在'
到底该怎么操作 。。。。
展开
 我来答
Gujiajun1984
2009-03-16 · TA获得超过713个赞
知道小有建树答主
回答量:1145
采纳率:0%
帮助的人:761万
展开全部
执行没有问题? 你这个 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;
hotyxm
2009-03-17 · TA获得超过1028个赞
知道大有可为答主
回答量:1698
采纳率:50%
帮助的人:1179万
展开全部
1.回复二楼的,函数是能够返回boolean型的
2.你要看显示结果,得去PL的outpu窗口看。你运行了试一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dyxg041
2009-03-16 · TA获得超过1035个赞
知道小有建树答主
回答量:1067
采纳率:0%
帮助的人:956万
展开全部
是需要调用的,调用传值就可以了
select CheckUser(1) from dual
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式