在plsql中编写函数

时间:2011-06-07 15:21:37

标签: oracle plsql

我正在查询数据库并需要解析其中一个字段以获取特定值(使用字符串函数)。所以我认为最好为它编写一个函数。我以前从未在plsql中编写过函数,所以我决定查看一些例子。

我得到了一个简单的“square”函数的副本,该函数接受一个数字并返回它的平方,但我不确定如何从SQL语句中调用它。

我只有读取权限。我能编写函数并使用它们来检索我需要的数据吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:3)

为了能够创建一个函数,您的用户需要DBA授予它的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中,通常首选在packages中创建函数,在这种情况下,调用SQL将是:

select num, mypackage.square(num)
from mytable;