Oracle 存储过程
Posted 珈子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 存储过程相关的知识,希望对你有一定的参考价值。
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 存储过程的主要内容,如果未能解决你的问题,请参考以下文章
oracle创建存储过程时,提示错误是:错误(5,18): PL/SQL: ORA-00947: 没有足够的值?代码如下:
oracle创建存储过程时,提示错误是:错误(5,18): PL/SQL: ORA-00947: 没有足够的值?代码如下: