BEGIN;
select usp_set_emp_udt_upsert(array[(1,'abc abc')]::employee_udt[]);
select usp_set_emp_udt_upsert(array[(2,'abc abc')]::employee_udt[]);
select usp_set_emp_udt_upsert(array[(3,'abc abc')]::employee_udt[]);
select usp_set_emp_udt_upsert(array[(4,'abc abc')]::employee_udt[]);
select usp_set_emp_udt_upsert(array[(5,'abc abc')]::employee_udt[]);
COMMIT;
이렇게 하고 테이블 나이 확인 하려고 하니 실행이 안됩니다.
JDBC에서 함수를 하나씩 실행하는 것을 executeBatch하면 원 트랜잭션으로 처리되서 나이가 1살만 증가할거라 생각했는데
실행한 함수 횟수만큼 증가해서 위에꺼 테스트하려니 안되네요.....그래서 JDBC에서 저걸 하나씩 실행했나 봅니다.
이렇다면 함수로 biz로직 작성하고 JDBC에서 호출하면 execute는 호출횟수 2배, executeBatch는 호출한 횟수만큼 테이블
나이가 증가했습니다.
위에거 안되는거 맞나요? |