본문 바로가기
9. 프로젝트/└ 02. 홈페이지제작

Altibase 포팅

by 훈킹 2009. 8. 19.
반응형

**사이트에 DB를 Altibase를 쓴다고 해서.. Altibase 포팅을 하게 되었다.

Altibase는 MMDBMS(Main Mamory Data Base Management System) 로서.. 국내 1위의 MMDBMS  업체이다. 검색을 해서 좀 알아보니 작년 매출이 120억 정도였고 직원수는 약 100명쯤이라고 한다.

홈페이지를 찾아보니 ANSI SQL 92 Full 지원이라는 반가운 문구가 보인다.

담당자와 얘기를 해보니 퀴리는 오라클과 거의 유사한데 Rownum이 없다고 한다. Rownum이 없는 대신 Rownum limit라는것이 있는데 where절 없이 처음에 지정할 타켓녀석의 넘버와 몇개 나올지를 정의하면 된다고 한다.

(참고로 unisql은 오라클처럼 rownum을 지원하고 ml-sql과  sybase는 top을 지원한다. db2는 rownum대신 "ROW_NUMBER() OVER ()"를 이용해서 사용한다.)

 예를들어 아래처럼 하면(오라클의 sqlplus처럼 알티베이스는 isql라는 것을 지원한다.)

iSQL> select account, name from cduser rownum limit 1,1;

첫번째녀석 하나만 달랑 나오게 되겠다.

 대부분은 오라클과 거의 유사하다고 하니.. 폴더 리스트 정렬에만 신경을 좀 쓰면 될것 같다. (물론 그외 문제는 신경쓰자면야 끝이 없겠지만 -_-)

 

그리고 알티베이스에는 따로 GUI툴이 있긴 한데.. 느려서 쓰기가 힘들다고 한다. 'ㅡ'

그래서 난 다람쥐를 쓰기로 했다.( http://squirrel-sql.sourceforge.net)

 

다람쥐는 jdbc만 있으면 어느 디비에 붙을수가 있기 때문에 이렇게 메이저가 아닌 디비에 붙을때 좋다.

 

그리고 테스트 해보니 알티베이스가 제공하는 JDBC가 아직 완벽한것은 아닌듯 하다. (제공받은 JDBC가 가장 최신건데 'ㅜ')

담당자와 테스트하다가 알아낸 내용인데

 아래처럼 PreparedStatement 문에 setMaxRows만 지정하고 excute를 날리면 오류가 난다.

  m_Pstmt.setMaxRows(nMaxRows);
  return m_Pstmt.executeQuery();

 

오류를 체크해보니 내부적으로 MaxRows를 할때 Fetch사이즈가 맞지 않는것 같다.

그래서 위의 문장은 아래처럼 수정을 해야 제대로 나온다.

  m_Pstmt.setMaxRows(nMaxRows);

   m_Pstmt.setFetchSize( nMaxRows);

  return m_Pstmt.executeQuery();

 

반응형