如何调用PL/SQL存储过程(返回数字值的函数)?

7
我正在使用Oracle SQL开发人员或Oracle SQL * Plus。
2个回答

19

在SQL Plus中,你可以这样做:

var x number
exec :x := myfunction();

或者你可以使用SQL:

select myfunction() from dual;

1
我无法选择,因为在SQL函数内有一个更新语句。使用exec...可以解决问题。谢谢! - Mattan
完整路径是什么?如果您正在测试一个在包中的函数或过程,该怎么办? - user447607

3

上面的示例展示了如何从SQL*Plus调用函数。如果您正在从PL/SQL过程中调用函数,请参见下面的示例。

DECLARE
    x NUMBER;
BEGIN
    x := myfunction();
END;

一个更复杂的例子,将返回值100(10 * 10):
DECLARE

  x NUMBER;

  FUNCTION mysquare(in_y IN NUMBER) RETURN NUMBER IS
  BEGIN
    RETURN in_y * in_y;
  END mysquare;

BEGIN

  dbms_output.enable;
  x := mysquare(10);
  dbms_output.put_line(x);

END;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接