create [or replace] function имя_функции
[(имя_параметра [ IN | OUT | IN OUT ] тип [, ... ])]
{is | as}
begin
тело_функции
end имя_функции;
in -режим по умолчанию
входной параметр
(параметр который к моменту выполнения уже имеет значение
и это значение не может измениться в теле функции)
out -используется для параметров,
значения которых устанавливаются только в теле функции.
in out -используется для параметров,
которые могут иметь значения к моменту вызова функции,
но эти значения могут быть изменены в теле функции.
create function func1 (
par1 in number
) return number as
var1 number := 10;
var2 number;
begin
var2 := var1 * par1;
return var2;
end func1;
/
create avg_tab_col (
par1 in integer
) return number as
var1 number;
begin
select avg(col2)
into var1
from tab
where col1 = par1;
return var1;
end avg_tab_col;
/
Вызываются функции так:
select func1(15) from dual;
select func1(par1 => 15) from dual;
select avg_tab_col(20) from dual;
Получить информацию о функции можно так:
select * from user_procedures where object_name in ('FUNC1, 'AVG_TAB_COL');
Удаление функции:
drop function func1();
[(имя_параметра [ IN | OUT | IN OUT ] тип [, ... ])]
{is | as}
begin
тело_функции
end имя_функции;
in -режим по умолчанию
входной параметр
(параметр который к моменту выполнения уже имеет значение
и это значение не может измениться в теле функции)
out -используется для параметров,
значения которых устанавливаются только в теле функции.
in out -используется для параметров,
которые могут иметь значения к моменту вызова функции,
но эти значения могут быть изменены в теле функции.
create function func1 (
par1 in number
) return number as
var1 number := 10;
var2 number;
begin
var2 := var1 * par1;
return var2;
end func1;
/
create avg_tab_col (
par1 in integer
) return number as
var1 number;
begin
select avg(col2)
into var1
from tab
where col1 = par1;
return var1;
end avg_tab_col;
/
Вызываются функции так:
select func1(15) from dual;
select func1(par1 => 15) from dual;
select avg_tab_col(20) from dual;
Получить информацию о функции можно так:
select * from user_procedures where object_name in ('FUNC1, 'AVG_TAB_COL');
Удаление функции:
drop function func1();
Комментариев нет:
Отправить комментарий