Oracle存储过程(一)

1、创建存储过程:
  create or replace procedure flmTest  创建一个名为flmTest的存储过程,如果存在就覆盖!

2、调用存储过程:
  call 存储过程名

3、入门Demo:
 创建表flmTest:
 -----------------------------开始-------------------------------
 create table flmTest
 (
   id    varchar2(4),
 name    varchar2(15),
  pwd    varchar2(15),
 address varchar2(30)
 )
 -----------------------------结束-------------------------------

-----------------------创建名为addFlmTest的存储过程-------------------------------------------------------
create or replace procedure addFlmTest
(
n_id flmtest.id%type,
n_name flmtest.name%type,
n_pwd flmtest.pwd%type,
n_address flmtest.address%type
)
as
begin
  insert into flmtest(id,name,pwd,address) values(n_id,n_name,n_pwd,n_address);
end addFlmTest;
----------------------------结束--------------------------------------------------------------------------

------------------------------调用addFlmTest存储过程------------------------------------------------------
call addFlmTest('001','小民,'110','长春市');
--------------------------------结束----------------------------------------------------------------------

4、存储过程定义:
       存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中。
用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。

5、存储过程优点:
 ①存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
 ②当对数据库进行复杂操作时(如对多个表进行Update、Insert、Query、Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
 ③存储过程可以重复使用,可减少数据库开发人员的工作量。
 ④安全性高,可设定只有某用户才具有对指定存储过程的使用权。

6、Oracle中执行存储过程call和exec区别:
 ①exec是sqlplus命令,只能在sqlplus中使用;call为SQL命令,没有限制。
 ②存储过程没有参数时,exec可以直接跟过程名(可以省略()),但call则必须带上()。
 总结:在调用过程时,应该养成使用call,且要带上()的习惯。

猜你喜欢

转载自flemming323.iteye.com/blog/2122527