IT정리노트

블로그 이미지

Edward. K

메멘토적 기억능력을 소유한 개발자 노트.

IBatis Altibase 사용시 'Invalid use of host variables' 에러

DB 2011. 10. 12. 17:01
반응형

알티베이스를 사용중인데  다음과 같은 요상한(?-왜,왜..왜?? -)  에러가 발생했다.
  Invalid use of host variables 

    select GET_FUNC_NM(col10) COL_NM
            , GET_FUNC_NM2(?) COL2_NM      <-- Exception 발생
            , col1, col2, col3, col4, col5, col6
      from TB_TABLE
        where col0 = ?
  --- Check the SQL Statement (preparation failed).
  --- Cause: java.sql.SQLException: [0]
                      :Invalid use of host variables
  0003 :         , GET_FUNC_NM2(?) FUNC2_NM
          ^        ^

원인은..알티베이스(버젼4)에서 "타겟 절에 호스트 변수 사용을 지원하지 않음"으로.
            이 경우 해결책은 다음과 같이
             ibatis dynamic SQL로 처리[1안] 하거나,    
             cast 로 처리[2안]하는 방법이 있다.

       GET_FUNC_NM2(?) COL2_NM
      ->   [1안]      <dynamic>  GET_FUNC_NM2($colNm$) COL2_NM <dynamic>
       ->  [2안]      GET_FUNC_NM2( cast(#colNm# as varchar(40))) COL2_NM  

 <select id="regHisList" parameterClass="box" resultClass="box">
    select GET_FUNC_NM(#col10#) COL_NM
            , GET_FUNC_NM2(#colNm#) COL2_NM   
   <- 요 녀석을 1안 혹은 2안으로 변경.
            , col1, col2, col3, col4, col5, col6
      from TB_TABLE
        where col0 = #col0#
 </select>


해결책을 찾은 사이트 정보

알티베이스의 답변(http://atc.altibase.com/techSupport?do=techSupportView&paramCaseNo=24937) 이다
  알티베이스 버전 4에서는 타겟 절에 호스트 변수 사용을 지원하고 있지 않습니다.
  Ibatis의 기능을 통해 dynamic SQL로 변경하셔서 수행하셔야 합니다.

   <statement id="getlogresult" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
     select /* SubscriberDAO.getSubscribersLogin */
      <dynamic>
           DECODE(PW,MY_ENCRYPT('$변수명$','altibase'),'OK','NO') AS LOGINRESULT
      </dynamic>
      from UAN_SUBS where ID = #ID#
       </statement> 

 

불친절한자수씨(http://vicki.tistory.com/862)님의 답변이다
     오라클에서 잘 돌아가는 쿼리를 알티베이스에 그대로 적용했더니 아래와 같은 오류가...
     --- Check the SQL Statement (preparation failed).
     --- Cause: java.sql.SQLException: [0]:Invalid use of host variables
     원인은 함수에 prepared statement 의 파라미터가 들어갈 때 발생하는 오류였습니다.
     지난번에 회사 동료분이 알려준 해결 방법은 cast 로 파라미터를 감싸주는 것 입니다.
     예를 들어 함수이름이 f_new_number 이고,  파라미터가 type 이라면

     ...
     f_new_number(?)
     ...
     가 아닌
     ...
     f_new_number(cast(? as varchar(20)))
     ...
     일단은 잘 될거라고 믿어 의심치 않습니다.




 

반응형
저작자표시 비영리 변경금지 (새창열림)
Posted by Edward. K
블로그 이미지

메멘토적 기억능력을 소유한 개발자 노트.

by Edward. K

공지사항

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

태그

  • Graphic
  • 색상코드표
  • 컴퓨터 관리
  • egov
  • 플래시 게임
  • 중독성게임
  • netbeans
  • Jboss
  • 이미지 편집
  • 전자정부프레임워크
  • 개한민국
  • Eclipse
  • EkNote
  • eclipse plugin
  • iBATIS
  • 가상화폐무료
  • rocketdock
  • 사업 이야기
  • flex
  • 미네르바
  • tomcat
  • ERwin
  • 캡쳐툴
  • toad
  • sqlgate
  • STS
  • android
  • EditPlus
  • Flash Player
  • 이클립스

글 보관함

«   2026/01   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

링크

카테고리

분류 전체보기 (792)
행운이와함께 (1)
EkNote Project (18)
ARIS (0)
Android (2)
LINK (39)
UML (9)
Programming (154)
Cobol (0)
ASP (0)
CSS (5)
C_C++ (2)
IBatis (2)
JSP (3)
JAVA (76)
JavaScript (44)
PHP (2)
Utility (76)
Protable (3)
MobileProgram (4)
SKT (0)
KTF (0)
LGT (0)
자료들 (4)
DB (82)
mongoDB (0)
MySQL (8)
Oracle (61)
MSSQL (4)
Graphic (8)
Flash (3)
PhotoShop (3)
SourceFactory (4)
Collection (73)
작가의기막힌상상력 (14)
미소를찾아보는공간 (44)
내심장은작동중일까 (6)
멀더와스컬리의노트 (3)
이건어디에사용할까 (6)
Edward (275)
나만 알기엔 아까워 (100)
기억하기 위한 기록 (123)
시선이 머무는 공간 (50)
숨기고 싶은 이야기 (2)

카운터

Total
Today
Yesterday
방명록 : 관리자 : 글쓰기
Edward. K's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

IT정리노트

메멘토적 기억능력을 소유한 개발자 노트.

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 분류 전체보기 (792)
    • 행운이와함께 (1)
    • EkNote Project (18)
    • ARIS (0)
    • Android (2)
    • LINK (39)
    • UML (9)
    • Programming (154)
      • Cobol (0)
      • ASP (0)
      • CSS (5)
      • C_C++ (2)
      • IBatis (2)
      • JSP (3)
      • JAVA (76)
      • JavaScript (44)
      • PHP (2)
    • Utility (76)
      • Protable (3)
    • MobileProgram (4)
      • SKT (0)
      • KTF (0)
      • LGT (0)
      • 자료들 (4)
    • DB (82)
      • mongoDB (0)
      • MySQL (8)
      • Oracle (61)
      • MSSQL (4)
    • Graphic (8)
      • Flash (3)
      • PhotoShop (3)
    • SourceFactory (4)
    • Collection (73)
      • 작가의기막힌상상력 (14)
      • 미소를찾아보는공간 (44)
      • 내심장은작동중일까 (6)
      • 멀더와스컬리의노트 (3)
      • 이건어디에사용할까 (6)
    • Edward (275)
      • 나만 알기엔 아까워 (100)
      • 기억하기 위한 기록 (123)
      • 시선이 머무는 공간 (50)
      • 숨기고 싶은 이야기 (2)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바