首页 > 代码库 > Oracle中的存储过程
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; /
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。