Oracle数据库11g新特性:高效的PL/SQL编码
2008-12-16 13:03:47 来源:WEB开发网对于更改控制过程来说,该特性非常有用。另一个出色的应用是在特定点启用触发器。例如,假设您要使用触发器构建一个审计解决方案,而 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:
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接