oracle 存储过程
例子一:
create or replace procedure protest1 is
begin
insert into mytest values ('文', '123456');
end;
块:dbms_output是包
begin
dbms_output.put_line('hello word!');
end;
注下边是执行关闭输出结果
set serveroutput open;
开启
set serveroutput on;
有定义和执行部分的块
declare
v_username varchar2(20);
v_pw varchar2(20);
begin
--执行部分
select name,password into v_username,v_pw from mytest where password=&pw;
--输出部分
dbms_output.put_line('名字:'||v_username||'密码:'||v_pw);
--异常处理
exception
when no_data_found then
dbms_output.put_line('你输入的密码找不到数据!');
end;
--根据用户名去修改密码
create procedure updatePw(name varchar2,pw varchar2) is
begin
update mytest set password = pw where name = name ;
end;
--java调用存储过程
package lhw.cn.oneedu.procedure;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
/**
* java调用存储过程
* @author wen
*
*/
public class OracelProcedureTest {
/**
* @param args
*/
public static void main(String[] args) {
try {
//加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:oracle", "tianwen", "tianwen");
//创建CallableStatement
CallableStatement cs = conn.prepareCall("{call updatePw(?,?)}");
//给?赋值
cs.setString(1, "admin");
cs.setString(2, "5566");
//执行
cs.execute();
cs.close();
//关闭
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
调用
定义变量
var abc varchar2;
call fun1('5566') into:abc;
print abc;

浙公网安备 33010602011771号