다른 명령
DEVCAFE NOTE
Pythonpython-oracledb Thin 모드로 Oracle 19c에 접속하고 쿼리를 실행하는 기본 예제
KEY POINTS · 핵심 정리
개요
python-oracledb는 cx_Oracle의 후속 드라이버입니다. 기본값인 Thin 모드는 Oracle Client(Instant Client) 설치 없이 바로 접속할 수 있어 간단한 자동화 스크립트에 적합합니다.
준비 사항
- Python 3.8 이상
- 패키지 설치:
pip install oracledb - 접속 정보: 호스트, 포트, 서비스명, 계정
본문
1단계 : 접속
oracledb.connect()에 계정과 DSN(호스트:포트/서비스명)을 넘깁니다.
2단계 : 쿼리 실행
with 문을 쓰면 커서와 연결이 자동으로 닫힙니다. 값은 반드시 바인드 변수로 넘기세요.
예제 코드
import oracledb
dsn = "dbhost:1521/ORCLPDB"
with oracledb.connect(user="scott", password="tiger", dsn=dsn) as conn:
print("DB 버전:", conn.version)
with conn.cursor() as cur:
cur.execute("SELECT ename, sal FROM emp WHERE deptno = :d", d=10)
for ename, sal in cur:
print(ename, sal)
문제 해결
| 증상 | 원인 | 해결 방법 |
|---|---|---|
| DPY-6005 / ORA-12541 | 리스너 미기동 또는 포트 차단 | lsnrctl status, 방화벽 확인
|
| ORA-12514 | 서비스명 오류 | lsnrctl services로 서비스명 확인
|
| DPY-3015 | 구버전 DB의 비밀번호 검증자(10G) | 비밀번호 재설정 또는 Thick 모드 사용 |