Home  >  Article  >  Database  >  Oracle学习笔记之存储过程与函数

Oracle学习笔记之存储过程与函数

WBOY
WBOYOriginal
2016-06-07 17:01:37826browse

PL/SQL是对Oracle数据库进行操作的一种过程性编程语言,它可以在SQL * plus中执行,也可以嵌入到JAVA或者C++中。其基本组成为:D

PL/SQL是对Oracle数据库进行操作的一种过程性编程语言,它可以在SQL * plus中执行,也可以嵌入到JAVA或者C++中。其基本组成为:

DECLARE

...

BEGIN

...

EXCEPTION

...

END

可用来将对数据库的各种操作封装为一个代码块,为了加强可重用性,还可将重复性代码写成函数与存储过程,用参数表示变化的部分。

        函数与存储过程的区别是,,函数返回一个值,而存储过程没有返回值,不过存储过程也可通过指定参数的IN|OUT形式来达到将处理结果读出来的目的。

      

1.存储过程创建示例:

CREATE OR REPLACE PROCEDURE callme(p1 number,p2 varchar2,p3 varchar2) AS

BEGIN

 INSERT INTO test values(p1,p2);

END callme;   

2.存储过程使用示例:

DECLARE

 val1 number:=16;

 val2 varchar2(20):='过程插入的新部门2';

 val3 varchar2(12);

BEGIN

 callme(val1,val2,val3);

END;

3.函数创建示例:

CREATE OR REPLACE FUNCTION CountRows(p1 number) RETURN NUMBER AS

 v_number NUMBER;

BEGIN

 SELECT count(*) INTO v_number FROM test WHERE id > p1;

 RETURN v_number;

END;

4.函数调用示例:

set serveroutput on /*只有设置了这行,才会显示输出结果*/

DECLARE

 v_number NUMBER;

 p_minid NUMBER;

BEGIN

 p_minid:=0;

 v_number:=CountRows(p_minid);

 DBMS_OUTPUT.PUT_LINE('部门号大于'||p_minid||'的部门有'||v_number||'个');

END;

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn