天天看点

WITH 语句的改善

在 12c 中,你可以用 SQL 更快的运行 PL/SQL 函数或过程,这些是由 SQL 语句的 WITH语句加以定义和声明的。

如何在 WITH 语句中定义和声明一个过程或函数:

WITH PROCEDURE|FUNCTION test1 (…)BEGINEND;

SELECT FROM table_name;/

尽管你不能在 PL/SQL 单元直接使用 WITH 语句,但其可以在 PL/SQL 单元中通过一个动态 SQL 加以引用。

SQL> set serveroutput on

SQL> with function Is_Number

2 (x in varchar2) return varchar2 is

3 Plsql_Num_Error exception;

4 pragma exception_init(Plsql_Num_Error, -06502);

5 begin

6 if (To_Number(x) is NOT null) then

7 return 'Y';

8 else

9 return '';

10 end if;

11 exception

12 when Plsql_Num_Error then

13 return 'N';

14 end Is_Number;

15 select Is_Number('test') is_num from dual;

16 /

N

     本文转自whshurk 51CTO博客,原文链接:http://blog.51cto.com/shurk/2056926,如需转载请自行联系原作者