码迷,mamicode.com
首页 > 数据库 > 详细

Oracle 存储过程

时间:2017-02-19 17:13:44      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:mit   values   name   parameter   weight   提交   default   命令执行   acl   

1.1存储过程

  存储过程是一种命名的PL/SQL程序块,他可以有参数,也可以有若干个输入、输出参数。甚至可以有多个即做输入又做输出的参数,但他都没有返回值。存储过程被保存在数据库中,他不可以被SQL语句直接执行调用。通过EXECUTE命令或在PL/SQL命令中调用,因为存储过程是已经编译好的代码块,所以被调用或引用时,执行效率很高。

1.1.1 存储过程的创建和执行

  用户的储存过程只能定义在当前数据库中,用户创建的储存过程归登录数据库的用户拥有。单DBA可以把许可授权给其他用户。在存储过程的定义体中不可以使用下列对象:

  CREATE VIEW  CREATE DEFAULT  CREATE RULE  CREATE PROCEDURE  CREATE TRIGGER

1.1.2创建储存过程

create [or replace] procedure pro_name [(parameter1[,parameter2]...)]  is|as
begin
    plsql_sentences;
[exception]
    [dowith_sentences;]
end [pro_name];

1.pro_name:存储过程的名称,如果数据库中已经存在此名称。则可以指定"or replace" 关键字,这样心得储存过程将覆盖原来的存储过程。
2.parameter:存储过程的参数,若是输入参数则在后面添加IN关键字,输出则添加OUT关键字,IN或OUT后面是参数的数据类型,但不能指定该类型的长度。
3.plsql_sentences:PL/SQL语句。
4.dowith_sentences:异常处理语句。

※:parameter是存储过程定义的参数,而不是存储过程定义的内部变量,内部变量要在"is|as"关键字后面定义,并使用分号结束

create or replace procedure pro_insertdept is 
begin
    insert into dept values(77,市场拓展部,JILIN);    --插入数据记录
    commit;            --提交数据
    dbms_output.put_line("插入记录成功");    --提示插入记录成功
end pro_insertdep;        

execute pro_insertdept;    --execute命令执行pro_insertdep存储过程

--修改可以使用ALTER PROCEDURE语句,也可以用CREATE OR REPLACE重新创建一个新的过程

drop procedure pro_insertdep;    --删除存储过程pro_insertdep

 

Oracle 存储过程

标签:mit   values   name   parameter   weight   提交   default   命令执行   acl   

原文地址:http://www.cnblogs.com/Jonecmnn/p/6416137.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!