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
'Python > Script' 카테고리의 다른 글
오라클 19c 파이썬을 이용해 여러개 DB 데이터 조회 후 엑셀 파일로 저장(pandas) (0) | 2024.04.04 |
---|---|
오라클 19c 파이썬을 이용해 여러개 DB 데이터 조회 후 엑셀 파일로 저장 (0) | 2024.04.01 |
오라클 19c 파이썬을 이용해 접속 및 쿼리 (0) | 2024.04.01 |