因业务需要,学习了一波存储过程。下面来记录一下一个简单新增的存储过程。
存储过程的创建语法:
create or replace procedure 存储过程名(param1 in type,param2 out type)
as
变量1 类型;
变量2 类型;
Begin
Select count(*) into 变量1 from 表A where列名=param1;
If (判断条件) then
Select 列名 into 变量2 from 表A where列名=param1;
Dbms_output.Put_line(‘打印信息');
Elsif (判断条件) then
Dbms_output.Put_line(‘打印信息');
Else
Raise 异常名(NO_DATA_FOUND);
End if;
Exception
When others then
Rollback;
commit;
End;
如下是我写的一个新增的存储过程:
create or replace procedure PRO_BD_MO_DEG_EVAL as
begin
--卡班供应商考核-月度评分表
insert into BD_MO_DEG_EVAL(
字段1,
字段2,
……)
select 查询语句;
commit;
end;
用的PL/SQL编写的,其中需要注意的问题:
- select 查询语句中的字段要与insert中的字段数量要相同;
- 除了数量以外,各个字段的类型也要一一对应(当初就因为建的表的一个字段为date,而select查询中的那个字段是verchar2,导致测试成功,但是数据一直没有insert进去)。