Как я могу вызвать хранимую процедуру pl / sql (функция, возвращающая числовое значение)? - PullRequest
7 голосов
/ 31 октября 2010

Я использую Oracle SQL Developer или Oracle SQL * Plus

Ответы [ 2 ]

18 голосов
/ 31 октября 2010

В SQL Plus вы можете сделать это:

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

Или вы можете использовать SQL:

select myfunction() from dual;
2 голосов
/ 20 ноября 2014

В приведенном выше примере показано, как вызвать функцию из 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;
...