在plsql中编写函数

Posted

技术标签:

【中文标题】在plsql中编写函数【英文标题】:Writing a function in plsql 【发布时间】:2011-06-07 15:21:37 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

为了能够创建函数,您的用户需要 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;

【讨论】:

嗯,所以我需要更多权限。我想我将不得不用我所拥有的。

以上是关于在plsql中编写函数的主要内容,如果未能解决你的问题,请参考以下文章

编写 PLSQL Oracle 函数来查询表

如何使用记录类型、对象和构造函数在 PLSQL 中给出多个输入值?

Oracle - 在PLSQL中编写REST服务

1.PLSQL编写简单存储过程(无参,纯打印)

不能正确引发异常的 PLSQL 函数

Listagg 函数与 PLSQL 集合