функция оракула компилируется каждый раз при вызове? - PullRequest
0 голосов
/ 27 июня 2018

Я читал некоторое время назад на портале, что функция oracle компилируется каждый раз, когда она вызывается, однако, когда я тестировал ее сегодня, она доказала обратное. Я создал простую функцию, как показано ниже

Create or replace function foo (p_in IN integer ) return integer
is
begin
  return p_in + 5;
end;

Когда я его скомпилировал, я записал значение запроса ниже

selectc last_ddl_time , timestamp from dba_objects where object_name = 'FOO';

Я выполнил его несколько раз, а затем снова проверил вывод вышеуказанного запроса, который не изменился.

Так что кажется, что то, что я прочитал ранее, было неверным, однако я просто хочу это подтвердить.

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Цитата из руководства

Каждая подпрограмма компилируется и сохраняется в исполняемом виде, который может быть вызван повторно.

Итак, ответ таков: они компилируются только один раз (когда вы запускаете оператор CREATE)

То же самое верно для пакетов.

0 голосов
/ 27 июня 2018

Функции Oracle, безусловно, не компилируются каждый раз. Это было бы очень неэффективно.

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