ошибка при выполнении процедур в пакете package oracle sql
Добрый день пытаюсь разобраться c пакетами в oracle sql, создаю пакет:
create or replace package nsv_pkg_testrand is
procedure clear;
procedure fill_table(coll int);
FUNCTION stick_by_data(string_rand varchar2, number_rand number) RETURN varchar2;
function stick_by_id(id int) return varchar2;
end nsv_pkg_testrand;
create or replace package body nsv_pkg_testrand is
procedure clear is
begin
delete from nsv_testrand;
end clear;
procedure fill_table(coll int) is
begin
insert into su.nsv_testrand(string_rand, number_rand)
select
dbms_random.string('A', 5) str,
round(dbms_random.value(11111,99999)) numbers
from dual connect by level <= coll;
end fill_table;
function stick_by_data (string_rand varchar2, number_rand number) RETURN varchar2
is
res varchar2(242);
begin
res := '123';
return res;
end;
function stick_by_id(id int) return varchar2
is
res varchar2(242);
begin
res:= '123';
return res;
end;
end nsv_pkg_testrand;
Но при попытке использовать процедуру или функцию:
nsv_pkg_testrand.clear;
выходит ошибка:
Error starting at line : 26 in command - nsv_pkg_testrand.clear Error report - Unknown Command
Вот вопрос где ошибка то? Если создать просто процедуры то работает нормально
Ответы (1 шт):
Автор решения: Alex R.
→ Ссылка
В Oracle объекты PL/SQL (процедуры и функции) не могут вызываться вне sql команд insert, update, delete
Их вызов должен быть заключен в анонимный блок
begin
nsv_pkg_testrand.clear;
end;
