如果程序可以做所有事情,那么数据库中的函数需求是什么

时间:2013-01-19 18:21:55

标签: database oracle plsql

数据库中函数的需要是函数的作用,也可以通过数据库中的过程来实现。

2 个答案:

答案 0 :(得分:4)

在Oracle中,它们非常相似。主要区别是函数返回结果,程序没有。 (不要混淆可能在两者中都有的输出参数......)

这种差异使得可以在SQL语句中使用函数,如

select user_name, myFunction( some_attribute ) from ...

select ... where fn2(col1)=something

您可以将其视为某种转变。

当然,为了在SQL语句中有效使用,它们应该很快,因为可以对输出中的每一行或每个检查的行执行多次。 (和/或确保线数不会太大。)

此外,在最新版本中可以使用return作为实时dbms_output(搜索管道行)。

答案 1 :(得分:1)

您还可以在基于函数的索引中使用函数。 而且这些索引也可以是唯一索引。 使用基于函数的唯一索引,您可以构建复杂的唯一约束

create unique index UK_MYINDEX
 on TBL_MYTABLE (case when IS_ACTUAL(MY_COLUMN_2) then MY_COLUMN_1 end);

在此示例中,我在唯一索引中使用IS_ACTUAL函数,以便仅对实际记录强制执行唯一的MY_COLUMN_1约束。