

块的结构及在pl/sql中演示块的调用,过程的结构及在MyEclipse中用java语言调用过程
一、Java的块
public static void main (String []args){
int a=1;
try{
a++;
system.out.printIn("1111");
catch(Execption e);`//得到异常
}
}
二、输出一行字符的简单块
set serveroutput on/off //打开输出选项,如果是on,写完回车会输入一行hello,world,off不会输出
begin
dbms_output.put_line(‘hello,world’); --dbms_output是这个包名,put_line是个过程名
end;
三、块是由定义部分,执行部分及有例外异常处理的块,例
实例2和3,--有定义和执行部分的块,3是加了异常处理的块
declare --定义变量的关键字
v_ename varchar2(5); //定义字符串变量v_ename
v_sal number(7,2);
begin
select ename,sal into v_ename,v_sal from emp where empno=&aa; //&aa代表执行时会跳出控制台让你输入aa的值,&表地址符,aa随便命名的字符,into v_ename //把查出的值赋值给v_ename
dbms_output.put_line('用户名是:'||v_ename||‘工资:’||v_sal); //输入一行,在控制台显示
exception
when no_data_found then
dbms_output.put_line('你的编号输入有误或数据库里没');
end;
/
注:异常处理是为了避免pl/sql的运行错误,应对可能的错误进行处理,有时出现异常时要用其它的处理,no_data_found是一个例外,的异常
四、过程,输入参数,将参数传递到执行部分,传递到应用环境
--案例4,修改指定员工工资的过程
create procedure sp_pro3(spName varchar2,newSal number) is //number只需指定类型,不需指定大小
begin
update emp set sal=newSal where ename=spName;--执行部分,根据用户名去修改工资
end;
/
exec sp_pro3(‘scott‘,4688); //调用存储过程
五、如何在Java中调用一个存储过程
启动MyEclipse建一个java调用过程
建名为Test的java工程,工程里建一个名为com.sp的包,包里再建个名为TestOraclePro类,勾上主函数
import java.sql.*; //执行前要引入驱动包
public static void main(String[] args) {
try{
Class.forName("oracle.jdbc.driver.OracleDriver"); //加载驱动
Connection ct=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORACLE1","scott","tiger");//得取连接
CallableStatement cs=ct.prepareCall("{call sp_pro3(?,?)}"); //创建callableStatement
cs.setString(1,"SMITH"); //给第1个问号赋值
cs.setInt(2,1234); //给第2个问号赋值
cs.execute(); //执行
cs.close(); //关闭资源
ct.close();
}catch(Exception e){ //异常处理
e.printStackTrace();
}
}
//执行前要引入驱动包
如何使用过程返回值