WEB开发网
开发学院数据库Oracle Oracle数据库11g新特性:高效的PL/SQL编码 阅读

Oracle数据库11g新特性:高效的PL/SQL编码

 2008-12-16 13:03:47 来源:WEB开发网   
核心提示: 对于更改控制过程来说,该特性非常有用,Oracle数据库11g新特性:高效的PL/SQL编码(10),另一个出色的应用是在特定点启用触发器,例如,例如,以下语句有效,假设您要使用触发器构建一个审计解决方案,而 audit_table 的旧记录尚未清除

对于更改控制过程来说,该特性非常有用。另一个出色的应用是在特定点启用触发器。例如,假设您要使用触发器构建一个审计解决方案,而 audit_table 的旧记录尚未清除。您可以先将触发器创建为禁用状态,并在稍后表就绪时启用它。

函数中的参数名

请考虑以下简单函数:

  create or replace function myfunc
(
p_param1    number,
p_param2    number
)
return number
is
begin
return p_param1 + p_param2;
end;
/

该函数执行的操作很简单,但足以说明概念。由于有两个参数,您可以通过两个方法来调用函数:即,将参数作为位置值传递,如:

  myfunc (1,2)

或者,作为命名参数传递:

myfunc ( p_param1 => 1, p_param2 => 2)

但是,如果在 select 语句中使用,后者会导致问题出现。在 Oracle 数据库 10g 中,如果您执行以下语句:

SQL> select myfunc (p_param1=>1,p_param2=>1) from dual;

将出现错误:

select myfunc (p_param1=>1,p_param2=>1) from dual
            *
ERROR at line 1:
ORA-00907:missing right parenthesis

在 Oracle 数据库 11g 中,您可以随意使用以下表示法:

  SQL> select myfunc (p_param1=>1,p_param2=>1) from dual;
  MYFUNC(P_PARAM1=>1,P_PARAM2=>1)
-------------------------------
               2
  1 row selected.

……这非常有效。您可以为后一个指定命名表示法;第一个必须是位置值。例如,以下语句有效,其中,参数 p_param1 设为 1:

上一页  5 6 7 8 9 10 

Tags:Oracle 数据库 特性

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接