Oracle Procedure

http://www.cnblogs.com/luxh/archive/2012/08/16/2640411.html

存储过程基本语法

复制代码
CREATE OR REPLACE PROCEDURE <procedure_name> [(<parameters>)] 
IS 
     [declare section] 
BEGIN
     [<statement(s)>]
[EXCEPTION <exception handler(s);]
END [<procedure_name>];
复制代码

  <>表示必须有,[]表示可选。

简单的例子

1、直接往表里插入一条记录

  1)建立一个测试的表

复制代码
--测试表 EMP
create table EMP
(
  ID        NUMBER,
  TAX       NUMBER,      --税收
  INSURANCE NUMBER       --保险
)
复制代码

  2)利用存储过程插入一条记录,不带参数

复制代码
--存储过程proc_insert_emp,往表EMP中插入一条记录
CREATE OR REPLACE PROCEDURE proc_insert_emp
IS
BEGIN
     insert into emp(id,tax,insurance) values(3,100,500);--向emp表插入一条记录
     commit;--提交事务
END proc_insert_emp;
复制代码

  3)利用存储过程插入一条记录,带参数

复制代码
--存储过程proc_insert_emp,往表EMP中插入一条记录
CREATE OR REPLACE PROCEDURE proc_insert_emp(
       id IN NUMBER,        --输入参数,接收ID值
       tax IN NUMBER,       --输入参数,接收税收的值
       insurance IN NUMBER  --输入参数,接收保险的值
)
IS
BEGIN
     insert into emp(id,tax,insurance) values(id,tax,insurance);--向emp表插入一条记录
     commit;--提交事务
END proc_insert_emp;
复制代码

  调用:

exec proc_insert_emp(4,500,600);

  4)带输出参数

复制代码
--存储过程proc_deduction,计算扣除税收和保险
CREATE OR REPLACE PROCEDURE proc_deduction(
       emp_id IN NUMBER,        --输入参数,接收ID值
       deduction OUT NUMBER     --输出参数
)
IS
BEGIN
       select tax + insurance into deduction
       from emp where id = emp_id;
END proc_deduction;
     
复制代码

  调用:

复制代码
set serveroutput on;
declare
    deduction number;
begin
    proc_deduction(2,deduction);
    dbms_output.put_line('deduction is:'||deduction);
end;
复制代码

 

posted @ 2012-08-30 13:50  加勒比海盗船  阅读(104)  评论(0编辑  收藏  举报