Oracle中的存储过程
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; /
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。