LLM을 활용한 테이블 변경에 따른 쿼리 변환
- database.py: 데이터베이스 연결 및 테이블 구조 가져오기
- query_extractor.py: SQL 파일에서 쿼리 추출
- query_transformer.py: 쿼리 변환
- sql_updater.py: 변환된 쿼리를 SQL 파일에 삽입
- main.py: 전체 프로세스를 실행하는 메인 파일
from database import get_all_table_structures
from query_extractor import extract_queries
from query_transformer import transform_query
from sql_updater import update_sql_code
import os
# Oracle 데이터베이스 연결 정보
dsn = cx_Oracle.makedsn("host", "port", service_name="service_name")
user = "username"
password = "password"
# 전체 테이블 구조 가져오기
table_structures = get_all_table_structures(dsn, user, password)
# SQL 파일 읽기
sql_file_path = 'example.sql'
with open(sql_file_path, 'r') as file:
sql_code = file.read()
# SQL 파일에서 쿼리 추출
queries = extract_queries(sql_code)
# 각 쿼리를 변환하고 SQL 코드 업데이트
for old_query in queries:
new_query = transform_query(old_query, table_structures)
sql_code = update_sql_code(sql_code, old_query, new_query)
# 업데이트된 SQL 파일 저장
new_sql_file_path = os.path.splitext(sql_file_path)[0] + '_conv.sql'
with open(new_sql_file_path, 'w') as file:
file.write(sql_code)
print(f"SQL 파일이 성공적으로 업데이트되었습니다: {new_sql_file_path}")
댓글