프로시저에 배열값 넘기는 방법
- 작성자 :
- 이*성
- 작성일 :
- 2011-08-03 12:02:35
- 조회수 :
- 2,532
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
아래와 같이 프로시저를 호출시 배열값을 넘기려고 합니다.
(오라클 배열타입(STRING_ARR)생성)
CREATE OR REPLACE PROCEDURE US_FRIAPP.SP_SEED_SPPL_SAVE(
IN_SEED_TEST_DT IN STRING_ARR,
-- RETURN VALUE
OUT_MSG OUT VARCHAR2
)
...
> VO클래에스 배열변수를 정의하였고(SET, GET메소드포함)
private String[] seedTestDt;
..
> Controller에서 배열값을 셋팅 > seedTestDt
String[] seedTestDt = request.getParameterValues ("seedTestDt");
seedSpplVO.setSeedTestDt(seedTestDt);
> sqlMap에서 아래와 같이 프로시저를 호출
<procedure id="SeedSpplDAO.seedSpplRegist" parameterClass="seedSpplVO" parameterMap="outProcedureMap">
{ call SP_SEED_SPPL_SAVE ( #seedTestDt#, #str1# ) }
</procedure>
일반변수는 잘 되는데 배열변수(seedTestDt)는 널포인트에러가 발생합니다.
프로시저에서 배열변수를 받아서 처리하는 방법 또는 Sample코드를 보내주시면 감사하겠습니다.
(오라클 배열타입(STRING_ARR)생성)
CREATE OR REPLACE PROCEDURE US_FRIAPP.SP_SEED_SPPL_SAVE(
IN_SEED_TEST_DT IN STRING_ARR,
-- RETURN VALUE
OUT_MSG OUT VARCHAR2
)
...
> VO클래에스 배열변수를 정의하였고(SET, GET메소드포함)
private String[] seedTestDt;
..
> Controller에서 배열값을 셋팅 > seedTestDt
String[] seedTestDt = request.getParameterValues ("seedTestDt");
seedSpplVO.setSeedTestDt(seedTestDt);
> sqlMap에서 아래와 같이 프로시저를 호출
<procedure id="SeedSpplDAO.seedSpplRegist" parameterClass="seedSpplVO" parameterMap="outProcedureMap">
{ call SP_SEED_SPPL_SAVE ( #seedTestDt#, #str1# ) }
</procedure>
일반변수는 잘 되는데 배열변수(seedTestDt)는 널포인트에러가 발생합니다.
프로시저에서 배열변수를 받아서 처리하는 방법 또는 Sample코드를 보내주시면 감사하겠습니다.
A
안녕하세요.. 이호성님..
사용자정의 유형에 대한 iBatis 처리는 iBatis의 type Handler가 필요합니다.
TypeHandler는 정의 유형에 따라 정의되기 때문에..
자체적으로 구현하셔야 합니다.
String[]에 대한 type handler는 다음 URL 등을 참조하시면 되실 것 같습니다.
http://blog.naver.com/PostView.nhn?blogId=thtlsgkrtod&logNo=40132162840
그럼.. 즐거운 하루되십시오.
감사합니다.
사용자정의 유형에 대한 iBatis 처리는 iBatis의 type Handler가 필요합니다.
TypeHandler는 정의 유형에 따라 정의되기 때문에..
자체적으로 구현하셔야 합니다.
String[]에 대한 type handler는 다음 URL 등을 참조하시면 되실 것 같습니다.
http://blog.naver.com/PostView.nhn?blogId=thtlsgkrtod&logNo=40132162840
그럼.. 즐거운 하루되십시오.
감사합니다.