【问题标题】:How can I test a function working or not in pl-sql?如何测试一个函数在 pl-sql 中是否工作?
【发布时间】:2013-05-22 21:40:10
【问题描述】:

我学习了在 pl-sql 中编写函数和过程的基础知识,但我不知道如何测试它是否工作,如果没有,我该如何调试它。 请有任何想法。 谢谢大家。 这是我正在尝试测试的功能

CREATE OR REPLACE FUNCTION MIN_MAX_SAL RETURN NUMBER AS 
cursor emp_cur is select salary from employees ;
emp_sal number;
min_sal jobs.min_salary%type;
max_sal jobs.max_salary%type;
BEGIN
select min_salary , max_salary into min_sal , max_sal from jobs;
for emp_sal in emp_cur loop
if (emp_sal > max_sal or emp_sal < min_sal) then
return 0;
end loop;
RETURN 1;
END MIN_MAX_SAL;

有什么帮助吗?

【问题讨论】:

    标签: oracle function debugging plsqldeveloper


    【解决方案1】:

    一般来说,就像这个问题 - 如何在 SQL*Plus 中运行/测试...

    测试一个接受标量参数并返回标量值的函数:

    SELECT function_name(parm1, parm2) FROM DUAL;
    

    要测试一个过程:

    EXEC procedure_name(parm1, parm2)
    

    如果过程通过OUT 参数返回REFCURSORSYS_REFCURSOR

    VAR x REFCURSOR
    EXEC procedure_name(parm1, parm2, :x)
    PRINT x
    

    上面第二行x前面的冒号是必须的。在其他两行(VARPRINT)中是不允许的。

    如果您在测试 SQL*Plus 中的特定函数或过程时遇到问题,请发布函数/过程或至少发布它的声明。

    要进行调试,请将DBMS_Output.Put_Line 调用撒在您要检查值的地方。 DBMS_Output 包记录在 here 中。在使用 DBMS _Output 调用运行 proc 之前,在 SQL*Plus 命令行中键入以下内容:

    SET SERVEROUTPUT ON SIZE 50000
    

    SIZE 是 Oracle 允许 DBMS_Output 回显的字符数。所有输出都在程序完成后发回。

    【讨论】:

      猜你喜欢
      • 2011-07-20
      • 2020-05-13
      • 2010-10-22
      • 1970-01-01
      • 1970-01-01
      • 2012-02-08
      • 2011-01-26
      • 2013-11-03
      • 1970-01-01
      相关资源
      最近更新 更多