[파이썬] Oracle DB 연동하는 방법/ select,insert, update, delete 예제

jychae·2022년 11월 4일
0

파이썬

목록 보기
4/8

Oracle DB 연동하는 방법

1) Anaconda Prompt창을 관리자 권한으로 실행
2) cx_Oracle 라이브러리를 설치
python -m pip install cx_Oracle --upgrade 입력
3) Oracle Instant Client Downloads에서 다운로드
Oracle Instant Client Downloads
4)사양에 맞춰서 다운로드 후 원하는 위치에 압축해제
5) 접속할 Oracle DB 정보 확인하고 연결하기
확인할 정보 : 사용자이름 비밀번호 호스트이름:포트/서비스이름

myselect.py


import cx_Oracle

conn = cx_Oracle.connect('python/python@localhost:1521/xe')

#JDBC statement 느낌 한방에 데이터 넘김 자바는 하나하나 넘겨줬었음
cs = conn.cursor() 

rs = cs.execute("select * from emp")

lst = list(rs)
print(lst)

for r in rs:
    print(r)
    
cs.close()    
conn.close()

myinsert.py


#--방법1--------------------------------------------------------------

# import cx_Oracle
# connStr = 'python/python@localhost:1521/xe'
# conn = cx_Oracle.connect(connStr)
# cur = conn.cursor() 
#
# sql = 'insert into emp(e_id, e_name, sex, addr) values (e_seq.nextval,4,4,4)'
# cur.execute(sql)
# conn.commit()


#--방법2--------------------------------------------------------------

# import cx_Oracle
#
# conn = cx_Oracle.connect('python/python@localhost:1521/xe')
# cs = conn.cursor()
# sql = "insert into emp(e_id, e_name, sex, addr) values (e_seq.nextval,5,5,5)"
# cs.execute(sql)   
# print(cs.rowcount)
#
# cs.close()
# conn.commit()
# conn.close()

#--방법3--------------------------------------------------------------

import cx_Oracle

conn = cx_Oracle.connect('python/python@localhost:1521/xe')
cs = conn.cursor()
sql = """
        insert into emp
        (e_id, e_name, sex, addr) 
        values 
        (e_seq.nextval,:1,:2,:3)
      """
cs.execute(sql,('4','4','4'))    
print(cs.rowcount)
conn.commit()

cs.close()
conn.close()

myupdate.py

#--방법1--------------------------------------------------------------
# import cx_Oracle
#
# conn = cx_Oracle.connect('python/python@localhost:1521/xe')
# cs = conn.cursor()
# sql = "update emp set e_name =:1, sex =:2, addr =:3 where e_id =7"
# cs.execute(sql,('7','7','7'))
#
# # cs.rowcount : java에서의 cnt
# print(cs.rowcount)
#
# # 오라클 DB 연결 해제 
# #-------------------------------
# # cursor 닫기
# cs.close()
# # commit
# conn.commit()
# # 연결 끊기
# conn.close()
# #--------------------------------


#--방법2--------------------------------------------------------------
# import cx_Oracle
#
# conn = cx_Oracle.connect('python/python@localhost:1521/xe')
# cs = conn.cursor()
# sql = """
#         update emp
#         set
#             e_name =:1,
#             sex =:2, 
#             addr =:3 
#         where 
#             e_id =:4
#       """
# cs.execute(sql,('5','5','5','9'))    
# print(cs.rowcount)
# conn.commit()
#
# cs.close()
# conn.close()
#

#--방법3--------------------------------------------------------------
import cx_Oracle

e_id = '9'
e_name = '6'
sex = '6'
addr = '6'

conn = cx_Oracle.connect('python/python@localhost:1521/xe')
cs = conn.cursor()
# 인공지능 하는 사람들의 주무기가 파이썬
# 인공지능쪽은 박사가 많음... 
# 삽질이 아닌 알고리즘이 주무기! 현업가면 2.0도 많이 씀...!
sql = f"""     
        update emp
        set
            e_name ='{e_name}',
            sex ='{sex}', 
            addr ='{addr}' 
        where 
            e_id ='{e_id}'
      """
cs.execute(sql)    
print(cs.rowcount)
conn.commit()

cs.close()
conn.close()

mydelete.py

#--방법1--------------------------------------------------------------
# #Oracle DB와 연결하기 위한 모듈 설치
# import cx_Oracle
#
# #Oracle DB의 python과 연결
# conn = cx_Oracle.connect('python/python@localhost:1521/xe')
#
# #다음 줄로 이동 (데이터 유무 확인)
# cs = conn.cursor()
#
# sql = "delete from emp where e_id=:1"
# #delete문 실행
# cs.execute(sql,('8'))
# #delete된 행의 수 출력
# print(cs.rowcount)
#
# # cursor 닫기
# cs.close()
# # commit
# conn.commit()
# # 연결 끊기
# conn.close()


#--방법2--------------------------------------------------------------
import cx_Oracle

e_id = '9'

conn = cx_Oracle.connect('python/python@localhost:1521/xe')
cs = conn.cursor()

sql = f"""     
        delete from emp 
        where 
            e_id='{e_id}'
      """
cs.execute(sql)    
print(cs.rowcount)
conn.commit()

cs.close()
conn.close()
profile
안녕하세요! 초보개발자 공부 시작!

0개의 댓글