Написание функции в plsql - PullRequest
2 голосов
/ 07 июня 2011

Я запрашиваю БД и мне нужно проанализировать одно из полей на предмет определенных значений (используя строковые функции).Поэтому я подумал, что было бы лучше написать для него функцию.Я никогда раньше не писал функции в plsql, поэтому я решил взглянуть на некоторые примеры.

Я получил копию простой функции "квадрат", которая принимает число и возвращает его квадрат, ноне знаю, как вызвать его из оператора SQL.

У меня есть только права на чтение.Смогу ли я написать функции и использовать их для получения нужных мне данных?И если да, то как?

1 Ответ

3 голосов
/ 07 июня 2011

Чтобы иметь возможность создать функцию, вашему пользователю нужна привилегия CREATE PROCEDURE, предоставленная ему администратором базы данных:

grant create procedure to myschema;

Если у вас есть эта привилегия, вы можете создать такую ​​функцию

create function square(n in number) return number
is
  return n*n;
end;

И вы можете вызывать его из SQL следующим образом:

select num, square(num)
from mytable;

Примечание: в Oracle обычно предпочтительнее создавать функции в пакетах , и в этом случае вызывающий SQLбудет как:

select num, mypackage.square(num)
from mytable;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...