存储过程是存在数据库中的一个对象
下面编写一个过程,要求,可以传入部门的编号,部门的名称,部门的位置,之后调用此
过程就可以完成部门的增加操作。
CREATE OR REPLACE PROCEDURE myproc(dno dept.deptno%TYPE,
name dept.dname%TYPE,
dl dept.loc%TYPE) AS
cou NUMBER;
BEGIN
-- 判断插入的部门编号是否存在,如果存在则不能插入
SELECT COUNT(deptno) INTO cou FROM dept WHERE deptno = dno;
IF cou = 0 THEN
-- 可以增加新的部门
INSERT INTO dept (deptno, dname, loc) VALUES (dno, name, dl);
DBMS_OUTPUT.put_line('部门插入成功!');
ELSE
DBMS_OUTPUT.put_line('部门已存在,无法插入!');
END IF;
END;
脚本执行存储过程的方法:
执行过程: exec 过程名字
java代码执行存储过程的方法
public static void main(String[] args) throws Exception {
Connection conn = DBUtil.getConnection();
// conn.prepareStatement("call myproc('1','1','1')").execute();
CallableStatement call =conn.prepareCall("call myproc('1','1','10')");
boolean b = call.execute();
// true if the first result is a ResultSet object; false if the first
// result is an update count or there is no result
System.out.println(call);
}