oracledb 라이브러리
: python으로 Oracle DB에 연결해서 DB작업을 할 수 있도록 도와주는 라이브러리
!pip install oracledb
import oracledb
1. 오라클 DB 에 연결
con = oracledb.connect(user="사용자이름", password="비밀번호", dsn="호스트이름:port/SID")
cursor = con.cursor()
- dsn (Database Source Name)
- 호스트이름 또는 IP주소 부분이 localhost 일 경우 : 로컬 시스템, 즉 현재 시스템에 있는 오라클 DB 를 가리킴
- port번호 : 오라클 DB 서버의 기본 포트번호는 1521
2. DB 작업
cursor.execute("SQL문장")
out_data = cursor.fetchall()
for record in ou_data :
print(record)
- execute 함수 여러 줄 사용한 후, fetchall() 함수로 한 번에 저장 가능
fetchone : 하나 읽어옴
fetchall : 여러 개 읽어옴 (결과는 리스트!)
- cursor 내용을 저장하여 출력할 때는 select문처럼 데이터가 조회되는 경우에만(sql실행 시 반환되는 결과가 있을 경우에만) 내용이 저장됨
- 주의할 점 : DML 작업을 실행했을 경우, commit 명령도 execute로 실행해야 DB에 적용됨 !
3. DB 연결 해제
con.close()
사용 예시
con = oracledb.connect(user="system", password="oracle", dsn="localhost:1521/XEPDB1")
cursor = con.cursor()
print('데이터베이스 연결 성공~!!!')
cursor.execute("select * from emp")
out_data = cursor.fetchall()
for record in out_data:
print(record)
print('-'*50)
cursor.execute("insert into dept values(50, 'DEVELOPER','LA')")
cursor.execute("insert into dept values(60, 'DEVELOPER','ATL')")
cursor.execute('commit')
cursor.execute("select * from dept")
out_data2 = cursor.fetchall()
for record in out_data2:
print(record)
print('-'*50)
cursor.execute("delete from dept where dname = 'DEVELOPER'")
cursor.execute("commit")
cursor.execute("select * from dept")
out_data2 = cursor.fetchall()
for record in out_data2:
print(record)
print('-'*50)
cursor.execute("select e.empno, e.ename, e.mgr, d.deptno, d.dname from emp e, dept d where e.deptno = d.deptno")
out_data = cursor.fetchall()
for record in out_data:
print(record)
print('-'*50)
cursor.execute("create table dept_ddl as select * from dept")
cursor.execute("select * from dept_ddl")
out_data = cursor.fetchall()
for record in out_data:
print(record)
print('-'*50)
con.close()
- 결과 :
