pl/sql是对oracle数据库进行操作的一种过程性编程语言,它可以在sql * plus中执行,也可以嵌入到java或者c++中。其基本组成为:
declare
...
begin
...
exception
...
end
可用来将对数据库的各种操作封装为一个代码块,为了加强可重用性,还可将重复性代码写成函数与存储过程,用参数表示变化的部分。
函数与存储过程的区别是,,函数返回一个值,而存储过程没有返回值,不过存储过程也可通过指定参数的in|out形式来达到将处理结果读出来的目的。
1.存储过程创建示例:
create or replace procedure callme(p1 number,p2 varchar2,p3 varchar2) as
begin
insert into test values(p1,p2);
end callme;
2.存储过程使用示例:
declare
val1 number:=16;
val2 varchar2(20):='过程插入的新部门2';
val3 varchar2(12);
begin
callme(val1,val2,val3);
end;
3.函数创建示例:
create or replace function countrows(p1 number) return number as
v_number number;
begin
select count(*) into v_number from test where id > p1;
return v_number;
end;
4.函数调用示例:
set serveroutput on /*只有设置了这行,才会显示输出结果*/
declare
v_number number;
p_minid number;
begin
p_minid:=0;
v_number:=countrows(p_minid);
dbms_output.put_line('部门号大于'||p_minid||'的部门有'||v_number||'个');
end;
