프린트 하기

OS 환경 : Oracle Linux 7.6 (64bit)

 

SW 환경 : VS Code 1.87.2, Python 3.12.2

 

DB 환경 : Oracle Database 19.3.0.0

 

방법 : 오라클 19c 파이썬을 이용해 데이터 조회 후 엑셀 파일로 저장

파이썬환경에서 오라클에 접속해서 데이터를 가져온 뒤 엑셀로 저장하는 방법을 설명함
이 방법을 사용하기 위해선 먼저 xlsxwriter 이나 openpyxl 모듈이 필요함(엑셀로 저장하는 모듈)
본문에서는 xlsxwriter 모듈을 이용함(대량 데이터의 경우 속도가 더 빠르다고함)
참고 : [Pandas] Excel Writer 비교 (xlsxwriter VS. openpyxl)( https://blog.naver.com/wideeyed/221803761031 )

Pandas 모듈에서 xlsxwriter 도 같이 사용할수 있기때문에 그래프 작업까지 필요하다고 하면 pandas 모듈을 설치하는게 좋음

참고 : 

 

 

사전 설정 :
- VS Code 다운로드 : Windows 10에 Visual Studio Code 설치 가이드( https://positivemh.tistory.com/1058 )
- Python 다운로드 : Windows 10에 Python 설치 가이드( https://positivemh.tistory.com/1059 )
- VS Code 인터프리터 설정 : 인터프리터 설정( https://positivemh.tistory.com/1060 )
- 오라클 접속 : 오라클 19c 파이썬을 이용해 접속 및 쿼리( https://positivemh.tistory.com/1064 )

 

 

xlsxwriter 모듈 설치

1
2
3
4
5
6
7
CMD> pip install xlsxwriter
Collecting xlsxwriter
  Downloading XlsxWriter-3.2.0-py3-none-any.whl.metadata (2.6 kB)
Downloading XlsxWriter-3.2.0-py3-none-any.whl (159 kB)
   ---------------------------------------- 159.9/159.9 kB 1.6 MB/s eta 0:00:00
Installing collected packages: xlsxwriter
Successfully installed xlsxwriter-3.2.0

정상적으로 설치됨

 

 

설치된 버전 확인(vs code에서 실행함)

1
2
3
4
5
6
test2.py
import xlsxwriter
print(f"xlsxwriter version: {xlsxwriter.__version__}")
 
결과
xlsxwriter version: 3.2.0

xlsxwriter 3.2.0 버전임

 

 

엑셀파일저장용 폴더 생성

1
C:\tmp

 

 

ora_to_xls.py 파일 생성 후 실행

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
ora_to_xls.py
#import getpass
import oracledb
import xlsxwriter
import datetime
 
un = 'system'
cs = '192.168.137.19/oracle19'
port = 1521
pw = 'oracle'
#pw = getpass.getpass(f'Enter password for {un}@{cs}: ')
 
current_time = datetime.datetime.now()
formatted_time = current_time.strftime("%Y%m%d_%H%M")
 
# Connect to Oracle database
with oracledb.connect(user=un, password=pw, dsn=cs, port=port) as connection:
    with connection.cursor() as cursor:
        sql = """select * from dba_data_files"""
        cursor.execute(sql)
 
        # Create a new Excel file
        workbook = xlsxwriter.Workbook(f'C:/tmp/output_{formatted_time}.xlsx')
        worksheet = workbook.add_worksheet()
 
        # Write column headers
        columns = [i[0] for i in cursor.description]
        for col, column_name in enumerate(columns):
            worksheet.write(0, col, column_name)
 
        # Write data rows
        row_index = 1
        for row in cursor:
            for col, value in enumerate(row):
                worksheet.write(row_index, col, value)
            row_index += 1
 
        # Close workbook
        workbook.close()
 
print(f"Excel file 'output_{formatted_time}.xlsx' has been created successfully.")
 
결과
Excel file 'output_20240401_2045.xlsx' has been created successfully.

 

 

생성된 파일 확인

output_20240401_2045.xlsx 파일이 생성됨

 

 

엑셀 파일 확인

정상적으로 데이터가 엑셀파일로 저장됨

 

 

참조 : 

https://blog.naver.com/wideeyed/221803761031

https://positivemh.tistory.com/1064

 

오라클 19c 파이썬을 이용해 접속 및 쿼리

OS 환경 : Oracle Linux 7.6 (64bit) SW 환경 : VS Code 1.87.2, Python 3.12.2 DB 환경 : Oracle Database 19.3.0.0 방법 : 오라클 19c 파이썬을 이용해 접속 및 쿼리 파이썬환경에서 오라클에 접속하기 위해선 먼저 python-orac

positivemh.tistory.com

https://xlsxwriter.readthedocs.io/working_with_pandas.html