Можем ли мы вызвать процедуру или функцию из анонимного блока в oracle? - PullRequest
0 голосов
/ 10 апреля 2020

Могу ли я вызвать объект pl / sql по процедуре или функции из анонимного блока?

Это очень частый вопрос для интервью.

Спасибо

1 Ответ

1 голос
/ 10 апреля 2020

Да:

SQL> set serveroutput on
SQL> --
SQL> select banner from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

SQL> show user;
USER is "C##TEST"
SQL> --
SQL> CREATE OR REPLACE PROCEDURE myproc
  2  IS
  3  BEGIN
  4   dbms_output.put_line('myproc: OK');
  5  END;
  6  /

Procedure created.

SQL> --
SQL> show errors
No errors.
SQL> --
SQL> CREATE OR REPLACE FUNCTION myfunc RETURN VARCHAR2
  2  IS
  3  BEGIN
  4   return 'myfunc: OK';
  5  END;
  6  /

Function created.

SQL> --
SQL> show errors
No errors.
SQL> --
SQL> begin
  2   myproc;
  3  end;
  4  /
myproc: OK

PL/SQL procedure successfully completed.

SQL> --
SQL> declare
  2   myvar VARCHAR2(50);
  3  begin
  4   select myfunc into myvar from dual;
  5   dbms_output.put_line(myvar);
  6  end;
  7  /
myfunc: OK

PL/SQL procedure successfully completed.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...