Oracle Procedure语句
存储过程基本语法
CREATE OR REPLACE PROCEDURE [()]
IS www.2cto.com
[declare section]
BEGIN
[]
[EXCEPTION
CREATE OR REPLACE PROCEDURE proc_insert_emp(
END [];
<>表示必须有,[]表示可选。
简单的例子
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 www.2cto.com
BEGIN
insert into emp(id,tax,insurance) values(3,100,500);--向emp表插入一条记录
commit;--提交事务
END proc_insert_emp;
3)利用存储过程插入一条记录,带参数
--存储过程proc_insert_emp,往表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 www.2cto.com
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;
作者 CN.programmer.Luxh