cx_Oracle

Jaho·2021년 11월 30일
0

Python

목록 보기
3/18
post-custom-banner
import cx_Oracle

dsn = cx_Oracle.makedsn('localhost',1521,'xe') # 오라클 주소설정
print('dsn = ',dsn)
con = cx_Oracle.connect('SCOTT','TIGER',dsn) # 연결객체
type(con)
cur = con.cursor() # 결과 데이터를 담을 메모리 이름을 cur로 선언함
cur.execute("select * from emp") # 작성된 sql 구문의 결과가 cur 메모리에 저장된다.
res = cur.fetchall() # cur 메모리에 담긴 결과를 한번에 res변수에 리턴
# for row in res: # 리턴된 결과를 for를 통해 튜플 레코드로 출력한다.
# print(row)
print(res)

cur.close()
con.close()

cx_Oralcle 를 import
cx_Oracle.makedsn() = dsn생성 (oracle 주소 설정)
cx_Oracle.connect() = 주소 연결
cursor() = 결과 데이터 담는 메모리
excute() = sql구문 작성 cursor()에 메모리 저장
fetchall() = cursor() 에 담긴 결과를 리턴

22

import cx_Oracle

def myCon():
   dsn = cx_Oracle.makedsn('localhost',1521,service_name='xe')
   conn = cx_Oracle.connect(user='SCOTT',password='TIGER',dsn=dsn,encoding='utf-8') #오라클 접속
   print(conn)
   return conn;

def Test01(conn):
   cur = conn.cursor() # 실행 결과 데이터를 담을 메모리 객체
   #for문을 돌려 쿼리내용을 전체 출력
   for row in cur.execute('select * from emp'): 
       print(row)

def Test02(connection):
   cur = connection.cursor()
   cur.execute('select * from emp')
   while True:
       row = cur.fetchone()  # while이 True일동안 하나씩 출력
       if row is None: # row가 비어있으면 break
           break
       print(row)

def Test03(connection):
   cur = connection.cursor()
   cur.execute('select * from emp')
   num_rows = 10
   while True:
       rows = cur.fetchmany(num_rows) # while이 True일 동안 지정수만큼 출력 
       if not rows:
           break
       for row in rows:
           print(row)

def Test04(connection):
   cur = connection.cursor()
   cur.execute('select * from emp')
   rows = cur.fetchall() # 전부출력
   for row in rows: # 인덱스 0번 1번 출력
       print(row[0], row[1])

if __name__ =='__main__':
   Test01(myCon())
   print('=========================')
   Test02(myCon())
   print('=========================')
   Test03(myCon())
   print('=========================')
   Test04(myCon())

앞서 했던 코드와는 다르게 연결 하였다.

profile
개발 옹알이 부터
post-custom-banner

0개의 댓글