728x90
반응형
PROCEDURE
CREATE OR REPLACE PROCEDURE RES IS V_SQL VARCHAR2(1000); V_DEPTNO DEPT.DEPTNO%TYPE := 50; V_DNAME DEPT.DNAME%TYPE := '테스트'; V_LOC DEPT.LOC%TYPE := '서울'; BEGIN V_SQL := 'INSERT INTO DEPT01 VALUES (:A,:A,:A)'; EXECUTE IMMEDIATE V_SQL USING V_DEPTNO, V_DNAME, V_LOC; --SQL PROCEDURE에서 바인딩변수 기술시 USING사용 END;
package dbc7; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Types; public class ProcedureCall { public static void main(String[] args) { try { // 데이터베이스 드라이버를 로드 Class.forName("oracle.jdbc.driver.OracleDriver"); // Connection 객체 생성 Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe" , "test", "1111"); // 프로시저를 실행할 수 있는 Statement 객체 생성 CallableStatement cstmt = con.prepareCall("{call res()}");//리턴값 없다->프로시저 // ?에 값 바인딩 // 프로시저 실행 cstmt.executeQuery(); // 다 사용한 객체 닫기 cstmt.close(); con.close(); System.out.println("프로시저 호출 완료"); } catch (Exception e) { System.out.println(e.getMessage()); e.printStackTrace(); } } }
변경값 입력을 통한
CREATE OR REPLACE PROCEDURE RES( p1 DEPT.DEPTNO%TYPE, p2 DEPT.DNAME%TYPE, p3 DEPT.LOC%TYPE ) IS V_SQL VARCHAR2(1000); BEGIN V_SQL := 'INSERT INTO DEPT01 VALUES (:A,:A,:A)'; EXECUTE IMMEDIATE V_SQL USING p1, p2, p3; END;
package dbc7; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Types; public class ProcedureCall { public static void main(String[] args) { try { // 데이터베이스 드라이버를 로드 Class.forName("oracle.jdbc.driver.OracleDriver"); // Connection 객체 생성 Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "test", "1111"); // 프로시저를 실행할 수 있는 Statement 객체 생성 CallableStatement cstmt = con.prepareCall("{call res(?,?,?)}");//바인드변수 // ?에 값 바인딩 cstmt.setInt(1, 70); cstmt.setString(2,"tt"); cstmt.setString(3,"seoul"); // 프로시저 실행 cstmt.executeQuery(); // 다 사용한 객체 닫기 cstmt.close(); con.close(); System.out.println("프로시저 호출 완료"); } catch (Exception e) { System.out.println(e.getMessage()); e.printStackTrace(); } } }
728x90
반응형
'[JDBC]' 카테고리의 다른 글
[JDBC] FUNCTION (0) | 2024.02.02 |
---|---|
[JDBC] TRANJACTION - COMMIT, ROLLBACK, 원자성 (0) | 2024.02.01 |
[JDBC] ex) [회원정보테이블] (0) | 2024.01.31 |
[JDBC] DAO, DTO (0) | 2024.01.31 |
[JDBC] Ex (0) | 2024.01.31 |