이전 포스팅 에 이어서 Python 에서 TAJO 를 사용하는데 필요한 몇 가지 사항을 정리해본다.

Query 를 실행했다 그리고


이전 포스팅 마지막에 실행한 쿼리를 보자.

query = "select * from table1"
cur.execute(query)
result = cur.fetchall()

결과를 python 에서 사용해보자.

for each in result:
  print each[0] / each[1]

이런 경우 아래와 같은 Error 문구를 볼 수 있다.

TypeError: unsupported operand type(s) for /: 'java.lang.Long' and 'java.lang.Long'

문제는


문제는 query 의 결과값이 숫자인 경우 아래와 같은 형식으로 리턴되기 때문이다.

print type(each[2])
<class 'jpype._jclass.java.lang.Long'>

해결해보자


사실 해결책은 간단하다. 결국 TAJO 의 결과 값이 JDBC 를 통해서 오기 때문인데 .value 로 그 값을 받아올 수 있다.

print type(each[2].value)
<type 'long'> 

첫 코드를 수정해보자.

for each in result:
  print each[0].value / each[1].value