如何在 SQL Plus 中测试功能
How test function in SQL Plus
如何在 SQL Plus 中测试此功能?
CREATE OR REPLACE FUNCTION validid(
p_deptid IN dept.deptno%TYPE
)
RETURN BOOLEAN IS
v_dummy PLS_INTEGER;
BEGIN
SELECT 1
INTO v_dummy
FROM dept
WHERE deptno = p_deptid;
RETURN TRUE;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN FALSE;
END validid;
/
由于函数 returns 布尔值,您无法通过从 SQL 调用它来测试它。您需要从 PL/SQL 调用它。下面我展示了一个小的匿名块,它调用函数并向屏幕输出一些东西。要查看结果,您可能必须先执行命令 set serveroutput on
。 (这是一个 SQL*Plus 命令,而不是 SQL 或 PL/SQL,因此您不需要以分号或斜线结尾。)
当然,我假设该函数编译正确 - 这意味着您的架构中确实有一个 table DEPT,并且它有一个 DEPTNO 列。否则会出现编译错误。
set serveroutput on
begin
if validid(20)
then dbms_output.put_line('20 is valid');
else dbms_output.put_line('20 is invalid');
end if;
end;
/
PL/SQL procedure successfully completed.
20 is valid
如何在 SQL Plus 中测试此功能?
CREATE OR REPLACE FUNCTION validid(
p_deptid IN dept.deptno%TYPE
)
RETURN BOOLEAN IS
v_dummy PLS_INTEGER;
BEGIN
SELECT 1
INTO v_dummy
FROM dept
WHERE deptno = p_deptid;
RETURN TRUE;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN FALSE;
END validid;
/
由于函数 returns 布尔值,您无法通过从 SQL 调用它来测试它。您需要从 PL/SQL 调用它。下面我展示了一个小的匿名块,它调用函数并向屏幕输出一些东西。要查看结果,您可能必须先执行命令 set serveroutput on
。 (这是一个 SQL*Plus 命令,而不是 SQL 或 PL/SQL,因此您不需要以分号或斜线结尾。)
当然,我假设该函数编译正确 - 这意味着您的架构中确实有一个 table DEPT,并且它有一个 DEPTNO 列。否则会出现编译错误。
set serveroutput on
begin
if validid(20)
then dbms_output.put_line('20 is valid');
else dbms_output.put_line('20 is invalid');
end if;
end;
/
PL/SQL procedure successfully completed.
20 is valid