이전 포스팅 에 이어서 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