Oracle存储过程与函数

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.创建无参数的存储过程-->主要针对表或视图的查询,更新或者删除


--创建表 READERINFO
CREATE 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 
AS

BEGIN
UPDATE READERINFO SET BOOKCOUNT=BOOKCOUNT+1 WHERE UNIT='自动化';
END;
/



                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值