반응형
Python, Ubuntu, Tibero, ODBC
[참조] https://blog.boxcorea.com/wp/archives/2881
[참조] https://m.blog.naver.com/redmirage/221764055444
Tibero(티베로)는 티맥스 소프트에서 2006년에 개발한 한국산 DBMS이다. RDBMS이며, 데이터베이스 클러스터링, 병렬 쿼리 처리, 쿼리 옵티마이저 기능을 제공한다. 또한 SQL 등을 포함해서 오라클 제품과 거의 동일한 호환성을 제공한다.
티베로를 사용하기 위해 ODBC 드라이버를 사용해야 하는 이유는 다른 블로거 글을 참고하기 바란다.
1. 우분투에 ODBC 설치
# sudo apt install build-essential
# sudo apt install libssl-dev python3-dev
# sudo apt install unixodbc unixodbc-dev
2. tibero 서버에 있는 libtbodbc.so 파일을 /home/tibero/client/ 경로에 복사
(또는 tibero 클라이언트 설치)
3. /etc/odbcinst.ini 파일에 ODBC 드라이버 이름(Tibero6) 설정
# cat /etc/odbcinst.ini
[Tibero6]
Description = Tibero6 ODBC driver
Driver = /home/tibero/client/libtbodbc.so
Setup = /home/tibero/client/libtbodbc.so
Setup = 1
FileUsage = 1
4. MYDB라는 이름으로 ODBC를 설정 (이후 ODBC 접속은 MYDB라는 DSN 사용)
# cat /etc/odbc.ini
[ODBC]
Trace = 1
TraceFile = /tmp/odbc.trace
[MYDB]
Trace = no
Driver = Tibero6
Description = Tibero6 ODBC Datasource
# ConnectionType = Direct
SERVER = 192.168.100.41
PORT = 8629
# AuthenticationType=No Authentication
SID = tibero
User = tiberotest
Password = tiberotest
Database = tibero
5. ODBC 접속 시험 (isql 명령)
$ isql MYDB
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> select * from test;
+------------------------------------------------------+
| IDX |
+------------------------------------------------------+
| 13 |
| 12 |
| 14 |
+------------------------------------------------------+
SQLRowCount returns 3
3 rows fetched
SQL> exit
6. python 코드 작성
# tibero_odbc.py
import pyodbc
try:
# DB 연결
user = 'tiberotest'
passwd = 'tiberotest'
sql = 'select * from test;'
conn = pyodbc.connect('DSN=MYDB;UID='+user+';PWD='+passwd)
# 인코딩 설정
conn.setdecoding(pyodbc.SQL_CHAR, encoding='utf-8')
conn.setdecoding(pyodbc.SQL_WCHAR, encoding='utf-8')
conn.setdecoding(pyodbc.SQL_WMETADATA, encoding='utf-32le')
conn.setencoding(encoding='utf-8')
# DB 테스트
curs = conn.cursor()
row = curs.execute(sql)
for i in row:
print(i[0])
# DB 연결 종료
conn.close()
except Exception as ex:
print(ex)
7. 파이썬 코드 실행
python tibero_odbc.py
python tiberodbc.py
13.0
12.0
14.0
반응형
'Python 활용' 카테고리의 다른 글
Python, SQLAlchemy DB migration 툴 (1) | 2024.06.12 |
---|---|
파이썬, googletrans 패키지를 이용한 번역 (0) | 2024.05.15 |
파이썬, 테이블 생성 및 복사 예제 (SqlAlchemy) (0) | 2024.05.09 |
외래키(FOREIGN KEY) 관계 무시하고 삭제하기 (1) | 2024.01.23 |
Python과 C#의 AES 암호화 연동 (0) | 2024.01.16 |