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() 에 담긴 결과를 리턴
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())
앞서 했던 코드와는 다르게 연결 하였다.