标签:c style class blog code java
pl/sql编程语言是Oracle中操作数据库最快的语言,而存储过程本质就是pl/sql,所以通过存储过程来对数据库进行CRUD是最有效的。
不再使用JDBC来进行CRUD操作,因为使用JDBC来进行CRUD操作效率低。
所以,Java通过调用存储过程,来间接调用pl/sql,达到对数据库的CRUD操作。
我们可以把CRUD操作封装到存储过程中,在程序中,调用存储过程即可。
以下是例子:来自于Oracle讲师赵强
--打印Hello World
/*
调用存储过程
1. exec sayHelloWorld();
2. begin
sayHelloWorld();
sayHelloWorld();
sayHelloWorld();
end;
/
*/
create or replace procedure sayHelloWorld
as
--说明部分
begin
dbms_output.put_line('Hello World');
end;
/
带参数的存储过程
--给指定的员工涨100,并且打印涨前和涨后的薪水
create or replace procedure raiseSalary(eno in number)
as
--定义变量保存涨前的薪水
psal emp.sal%type;
begin
--得到涨前的薪水
select sal into psal from emp where empno=eno;
--涨100
update emp set sal=sal+100 where empno=eno;
--要不要commit??
--打印
dbms_output.put_line('涨前:'||psal||' 涨后:'||(psal+100));
end;
/存储函数:和存储过程的区别在于有一个返回值
--查询某个员工的年收入
create or replace function queryEmpIncome(eno in number)
return number
as
--定义变量保存月薪和奖金
psal emp.sal%type;
pcomm emp.comm%type;
begin
select sal,comm into psal,pcomm from emp where empno=eno;
--返回年收入
return psal*12+nvl(pcomm,0);
end;
/
declare
income number;
begin
income:=queryEmpIncome(7369);
dbms_output.put_line(income);
end;
/
标签:c style class blog code java
原文地址:http://blog.csdn.net/tangliuqing/article/details/27719925