вторник, 15 января 2013 г.

Функции в Oracle

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();

Комментариев нет:

Отправить комментарий