인공지능/파이썬

파이썬(Python) - 파이썬에서 오라클 SQL로 접속하는 방법

해피밀세트 2020. 3. 19. 19:43
반응형

 

 

 

1. Anaconda Prompt창을 관리자 권한으로 실행한다.

 

 

2. cx_Oracle 라이브러리를 설치한다.

혹시 라이브러리가 기존에 설치되어 있다면 업그레이드한다.

python -m pip install cx_Oracle --upgrade

 

3. 파이썬 IDE를 실행시키고 cx_Oracle임포트한다.

import cx_Oracle

 

4. 접속해야할 DB서버의 아이피 주소 혹은 서버이름, 포트번호, SID 정보를 입력한다.

dsn = cx_Oracle.makedsn("localhost",1521,"xe")

dsn

 

 

5. 데이터 베이스의 이름, 비밀번호, dsn으로 데이터 베이스에 연결한다.

db = cx_Oracle.connect("hr","1234",dsn)

db

 

 

6. SQL실행 메모리 영역(cursor)를 열고 확인한다.

cursor = db.cursor()
cursor.execute("select employee_id from employees")
cursor.fetchall()

 

 

7. 닫을 땐 sqlite와 같이 cursor -> connect순으로 닫아준다.

cursor.close()

db.close()

 


파이썬에서 오라클 DB에 테이블 생성

 

오라클에서 사용한것과 같이 create table을 사용하여 테이블을 생성하고

insert into로 값을 넣어준다.

cursor.execute("create table python(id number)")
cursor.execute("insert into python(id) values(1)")
db.commit()

 

 

 

오라클 DB에서 불러온 테이블의 컬럼 만들기

 

오라클 DB에서 불러온 테이블을 데이터 프레임 형식으로 확인해보면 컬럼이 없는것을 확인할 수 있다.

cursor.execute("select * from employees")
x = cursor.fetchall()
df = DataFrame(x)
df

 

user_tab_columns을 사용하여 컬럼을 넣어준다.

user_tab_columns : 오라클에서 유저(hr) 가지고 있는 테이블의 컬럼 정보만 가지고 있는 테이블

cursor.execute("""select column_name

                       from user_tab_columns

                       where table_name = 'EMPLOYEES'""")

col = cursor.fetchall()

df.columns = col

df.columns

# 튜플이 내장된 리스트 형식에서 값만 뽑아내기 

col_new = [j for i in col for j in i]

df.columns = col_new

df

반응형