存储过程基本语法
CREATE OR REPLACE PROCEDURE[( )] IS [declare section] BEGIN [ ][EXCEPTION ];
<>表示必须有,[]表示可选。
简单的例子
1、直接往表里插入一条记录
1)建立一个测试的表
--测试表 EMPcreate table EMP( ID NUMBER, TAX NUMBER, --税收 INSURANCE NUMBER --保险)
2)利用存储过程插入一条记录,不带参数
--存储过程proc_insert_emp,往表EMP中插入一条记录CREATE OR REPLACE PROCEDURE proc_insert_empISBEGIN 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 --输入参数,接收保险的值)ISBEGIN 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 --输出参数)ISBEGIN 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;