Oracle存储过程与函数

来源:互联网 发布:陕西大数据集团怎么样 编辑:程序博客网 时间:2024/06/05 05:37

1.理解Oracle存储过程

它是将一些固定的操作集中起来由Orcale数据库服务器来完成,为减少重复写SQL语句

2.认识存储过程

标准的SQL是面向数据的,不能对其进行程序化(例如:不提供循环控制,条件控制等关键字)但是Orcale数据库系统提供了存储过程对象,它以特定的顺序排列PL/SQL语句序列,并且可以指定名称、加已编译并保存在数据库中。一旦数据库管理系统创建了存储过程对象,用户便可以使用应用程序,通过单条命令通知Oracle执行存储过程中语句--类似于在应用程序中调用子程序。

以上文字总是让人难已理解,话不多说,看例子。

1.存储过程语法
CREATE PROCEDUCE [schema.]                 procedure_name   [ parameter_name [   [IN] datetype[{:=|DEFAULT} expression]|

-创建                                  -存储过程所属机构  -存储过程的名称      -过程中的参数名称      -传入类型参数以及数据类型和默认值      

{OUT| IN OUT}[NOCOPY]datatype][,...]   {IS|AS}
-输出参数或是即可输入也可输出参数    -连接词
2.存储过程的执行
EXEC proecdure_name;
还可以用如下方式:
BEGIN
    procedure_name;
END
执行带有参数的存储
EXEC proecdure_name(parameters);
如果执行过程带有输出语句,那么需要设置输出状态

SHOW SERVEROUTPUT;--打开
serveroutput off | SER SERVEROUTPUT ON;--关闭
3.创建无参数的存储过程-->主要针对表或视图的查询,更新或者删除


--创建表 READERINFOCREATE TABLE READERINFO(  READERID NUMBER(4) NOT NULL,  READERNAME VARCHAR2(10) NOT NULL,  SEX CHAR(4) DEFAULT '男',  UNIT VARCHAR2(50),  BOOKCOUNT NUMBER(4) DEFAULT 1);--表中插入元素INSERT INTO READERINFO(READERID,READERNAME,SEX,UNIT,BOOKCOUNT)VALUES(9701,'朱树军','男','自动化',2);INSERT INTO READERINFO(READERID,READERNAME,SEX,UNIT,BOOKCOUNT)VALUES(9702,'丁属于','男','计算机',2);INSERT INTO READERINFO(READERID,READERNAME,SEX,UNIT,BOOKCOUNT)VALUES(9703,'猪猪侠','女','金融系',3);INSERT INTO READERINFO(READERID,READERNAME,SEX,UNIT,BOOKCOUNT)VALUES(9704,'蝙蝠侠','男','自动化',7);INSERT INTO READERINFO(READERID,READERNAME,SEX,UNIT,BOOKCOUNT)VALUES(9705,'皮蛋','女','英语系',5);INSERT INTO READERINFO(READERID,READERNAME,SEX,UNIT,BOOKCOUNT)VALUES(9706,'小黑','男','自动化',7);INSERT INTO READERINFO(READERID,READERNAME,SEX,UNIT,BOOKCOUNT)VALUES(9707,'天山童','女','森林系',9);INSERT INTO READERINFO(READERID,READERNAME,SEX,UNIT,BOOKCOUNT)VALUES(9708,'炮哥','男','社会系',10);INSERT INTO READERINFO(READERID,READERNAME,SEX,UNIT,BOOKCOUNT)VALUES(9709,'美养养','女','农业系',4);--创建无参数存储过程CREATE PROCEDURE PRO_READERINFO3 ASBEGINUPDATE READERINFO SET BOOKCOUNT=BOOKCOUNT+1 WHERE UNIT='自动化';END;/


                                             
0 0
原创粉丝点击