메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

개발노트 테스트

데브카페
Devcafe (토론 | 기여)님의 2026년 11월 12일 (목) 12:12 판 (개발노트 양식 테스트 문서)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
DEVCAFE NOTE
Python
python-oracledb Thin 모드로 Oracle 19c에 접속하고 쿼리를 실행하는 기본 예제
KEY POINTS · 핵심 정리
난이도초급환경Windows 11 / Python 3.12 / Oracle 19c작성일2026년 11월 12일키워드oracledb Oracle DB 접속

개요

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 모드 사용

참고 자료