热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

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

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

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

推荐阅读
author-avatar
豆腐心_suile
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有