Как в PL-SQL выполнить блок?

verter
Дата: 05.12.2007 15:28:36
Допустим есть таблица A(ID,VAL)

Выполняем запрос:

select a.id, a.val*2+3 from a;

Хочу сделать функцию:

function f(v number)
return number
begin
return v*2+3;
end;

и выполнить тот же запрос используя эту функцию:

select a.id, f(a.val) from a;

Как записать блок кода:

function f(v number)
return number
begin
return v*2+3;
end;

select a.id, f(a.val) from a;

чтобы выполнить его в PL SQL Developer'e?
зы
Дата: 05.12.2007 15:30:25
нихрена не понятно...
dmidek
Дата: 05.12.2007 15:30:28
При чем тут PL/SQL Developer ?

Создаете функцию CREATE OR REPLACE
и выполняете Ваш SELECT ...
_Alex_SMIRNOV_
Дата: 05.12.2007 15:32:13
create function f(v number)
return number deterministic
begin
  return v*2+3;
end;
_Alex_SMIRNOV_
Дата: 05.12.2007 15:33:46
А зачем вообще функция, может все можно сделать напрямую в запросе не прибегая к написанию функции?
verter
Дата: 05.12.2007 15:42:52
Create не могу написать, т.к. у меня прав нет создать функцию.
зы
Дата: 05.12.2007 15:45:56
verter
Create не могу написать, т.к. у меня прав нет создать функцию.

попросить дать права...
зы:
что же вы за девелопер такой, если у вуас нет прав на создание ф-ций???
Тифа
Дата: 05.12.2007 15:46:17
ну без прав нет функции без функции нет селекта
dmidek
Дата: 05.12.2007 15:47:40
verter
Create не могу написать, т.к. у меня прав нет создать функцию.


Вы скажите так "Или давайте мне права или пишите функцию с селектом сами" :-)
_Alex_SMIRNOV_
Дата: 05.12.2007 15:48:17
У вас отобрали даже роль RESOURCE?