手机版
你好,游客 登录 注册
背景:
阅读新闻

Oracle总结之plsql编程(基础七)

[日期:2019-01-20 23:11:37] 来源:linux公社   作者:linux公社 [字体: ]

紧接基础六,对oracle角色和权限的管理之后,在接下来的几次总结中来就最近工作中用过的plsql编程方面的知识进行总结,和大家分享!

原创作品,转自请注明出处:https://www.cnblogs.com/sunshine5683/p/10296531.html

一、plsql块

1、只包括执行部分的plsql块

打开输出选项:set serveroutput on;

begin

dbms_output.put_line('');

end;

如上,只有打开了serveroutput才可以看到输出信息。

2、包含定义部分和执行部分的plsql块

declare

v_name%20varchar2(5);--定义字符串变量

begin

select%20ename%20into%20v_name%20from%20emp%20where%20empno=&no;

dbms_output.put_line(‘雇员们’||v_name);

end

输入编号,OK

3、包含定义部分、执行部分、例外处理部分的plsql块(即完整的plsql块)

在通常的plsql块中,难免会遇到执行中的错误,然后再编写的过程中应该尽量对可能出现的异常进行处理,所以这种情况下异常处理就显得格外重要。

declare

v_name%20varchar2(5);--定义字符串变量

begin

select%20ename%20into%20v_name%20from%20emp%20where%20empno=&no;

dbms_output.put_line(‘雇员们’||v_name);

exception

when%20no_data_found%20then

dbms_output.put_line('输入有误');

end

下面实例就是当输入的编号不存在时,不会保存,输出提示“输入有误”!

4、创建存储过程

create%20procedure%20sp_test1(spName%20varchar2,%20newsal%20number)is

begin

update%20scott.emp%20set%20sal=newsal%20where%20ename=spName;

end;

调用该存储过程

由上图可以看到调用存储过程前后的变化

二、使用java调用存储过程

%201%20//使用java调用oracle中的存储过程%202%20//注意要引入oracle的jar包classes12.jar%203%20package%20xhq.test;%204%20import%20java.sql.*;%205%20public%20class%20TestOracleProcedure{%20%20%206%20%20%20%20%20public%20static%20void%20main(String%20[]%20args){%207%20%20%20%20%20%20%20%20%20try{%208%20%20%20%20%20%20%20%20%20%20%20%20%20//1、加载驱动%209%20%20%20%20%20%20%20%20%20%20%20%20%20Class.forName("oracle.jdbc.driver.OracleDriver");10%20%20%20%20%20%20%20%20%20%20%20%20%20//2、得到连接11%20%20%20%20%20%20%20%20%20%20%20%20%20Connection%20conn%20=%20DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","user","password");12%20%20%20%20%20%20%20%20%20%20%20%20%20//创建CallableStatement13%20%20%20%20%20%20%20%20%20%20%20%20%20CallableStatement%20cs%20=%20conn.prepareCall("{call%20sp_test1(?,?)}");14%20%20%20%20%20%20%20%20%20%20%20%20%20//给?赋值15%20%20%20%20%20%20%20%20%20%20%20%20%20cs.setString(1,"SMITH");16%20%20%20%20%20%20%20%20%20%20%20%20%20cs.setInt(2,10);17%20%20%20%20%20%20%20%20%20%20%20%20%20//执行18%20%20%20%20%20%20%20%20%20%20%20%20%20cs.execute();19%20%20%20%20%20%20%20%20%20%20%20%20%20//关闭20%20%20%20%20%20%20%20%20%20%20%20%20%20cs.close();21%20%20%20%20%20%20%20%20%20%20%20%20%20conn.close();22%20%20%20%20%20%20%20%20%20}catch(Exception%20e){23%20%20%20%20%20%20%20%20%20%20%20%20%20e.printStackTrace();24%20%20%20%20%20%20%20%20%20}25%20%20%20%20%20}26%20}

今天总结到此结束,下次接着继续总结!

Linux公社的RSS地址http://www.it56.cn/rss.xml

本文永久更新链接地址www.it56.cn/MySql/9130.html

linux