오늘의 코딩
ch15_ex01>>>
- OraProc03
- cs.setString(2, empno) : 여기의 숫자는 문장의 순서 번호
- DOUBLE를 쓰면 정수 아래의 소수점까지 표현 가능
- DOUBLE로 선언했기 때문에 cs.getDouble로 받아줘야함
package ch15_ex01;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Scanner;
public class OraProc03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("수정할 Oracle 사원코드 ?");
String empno = sc.nextLine();
Connection conn = null;
CallableStatement cs = null;
String driver = "oracle.jdbc.driver.OracleDriver";
// Localhost -> 127.0.0.1; , Port 번호:1521 , xe(orcl)-> Service ID(Sid)
String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
// Procedure Calll할 때의 Format
String sql = "{? = call func_sal(?)}";
try {
Class.forName(driver); //없어도 될 수 있음, 연결되어 있다면
conn = DriverManager.getConnection(url,"scott", "tiger");
cs = conn.prepareCall(sql);
cs.setString(2, empno);//변경사번
//cs.registerOutParameter(1,java.sql.Types.DOUBLE);
cs.registerOutParameter(1, java.sql.Types.DOUBLE); // 변경급여
//변경급여 //변경시킨 뒤의 값 가져오기
cs.executeQuery();
Double sal = cs.getDouble(1);
if (sal > 0) {
System.out.println("Oracle CallableStatement 수정 성공^^");
System.out.println("변경 사번 : " + empno);
System.out.println("변경 급여 : " + sal);
}
}catch (Exception e) {
// TODO: handle exception
}
}
}
- ORACLE>>함수>>FUNC_SAL
- Function:
create or replace Function func_sal --or replace 꼭 쓰기
--Function을 쓰면 output이 필요
(p_empno in number)
RETURN number
is
vsal emp.sal%type; -- emp table의 sal과 같은 타입
BEGIN
-- 급여 10% Up
UPDATE emp
SET sal=sal*1.1
WHERE empno=p_empno;
commit;
SELECT sal
INTO vsal
FROM emp
WHERE empno=p_empno;
RETURN vsal;
END;
- ORACLE>>>scott_0612
Update Dept
set dname ='kk', loc='kk'
where deptno=59
;
create or replace Function func_sal --or replace 꼭 쓰기
--Function을 쓰면 output이 필요
(p_empno in number)
RETURN number
is
vsal emp.sal%type; -- emp table의 sal과 같은 타입
BEGIN
-- 급여 10% Up
UPDATE emp
SET sal=sal*1.1
WHERE empno=p_empno;
commit;
SELECT sal
INTO vsal
FROM emp
WHERE empno=p_empno;
RETURN vsal;
END;
--SELECT func_sal()
--FROM dual;
'DB > Oracle' 카테고리의 다른 글
2024_06_27_목 (0) | 2024.06.27 |
---|---|
2024_06_26_수 (0) | 2024.06.26 |
2024_06_26_수 (0) | 2024.06.26 |
2024_06_25_화 (0) | 2024.06.25 |
2024_06_11_화 (0) | 2024.06.11 |