VALUES(v_empno,v_ename,v_deptno); ELSE raise_application_error(-202021,'员工id 重复!!!'); END IF; num:=num1; commit; END; CREATE OR REPLACE PROCEDURE sp_add_emp2( v_empno emp.empno%TYPE, v_ename emp.ename%TYPE, v_deptno dept.deptno%TYPE, v_dname dept.dname%TYPE, num out number )AS num1 NUMBER; num2 NUMBER; BEGIN SELECT COUNT(*) INTO num1 FROM dept WHERE deptno=v_deptno; IF(num1=0) THEN INSERT INTO dept(deptno,dname) VALUES(v_deptno,v_dname); END IF; SELECT COUNT(*) INTO num2 FROM emp WHERE empno=v_empno; IF(num2=0)THEN INSERT INTO emp(empno,ename,deptno) VALUES(v_empno,v_ename,v_deptno); ELSE raise_application_error(-202021,'员工id 重复!!!'); END IF; num:=num1; commit; END;
Java中调用代码2: - Class.forName("oracle.jdbc.driver.OracleDriver");
- conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","tiger");
- conn.setAutoCommit(false);
-
- conn=DBConnection.getDBConnection().getConnection();
-
- String spName="{call sp_add_emp2(?,?,?,?,?)}";
- CallableStatement cstmt=conn.prepareCall(spName);
- cstmt.setInt(1,1111);
- cstmt.setString(2, "qqqq");
- cstmt.setInt(3, 50);
- cstmt.setString(4, "pppp");
- cstmt.registerOutParameter(5, java.sql.Types.INTEGER);
- cstmt.executeUpdate();
- int i = cstmt.getInt(5);
- System.out.println(i);
- cstmt.close();
- conn.close();
-
- Class.forName("oracle.jdbc.driver.OracleDriver");
- conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","tiger"
本新闻共 6页,当前在第 3页 1 2 3 4 5 6
|