파이썬 스크립트
Python으로 Oracle 데이터 삽입 시 특수문자 처리 방법
Billcorea
2025. 4. 23. 15:15
반응형
Python으로 Oracle 데이터 삽입 시 특수문자 처리 방법
Oracle 데이터베이스에 데이터를 삽입하면서 문자열에 특수문자, 특히 작은따옴표(')가 포함된 경우 SQL 문법 오류를 방지하는 방법을 소개합니다.
1. SQL Escape 처리
특수문자, 특히 작은따옴표가 포함된 문자열을 안전하게 처리하려면 작은따옴표를 두 개로 변환해야 합니다. Python 코드 예시는 다음과 같습니다:
python
def escape_string(value):
return value.replace("'", "''")
text = "Python's flexibility!"
escaped_text = escape_string(text)
print(escaped_text) # Python''s flexibility!
2. 바인딩 변수 사용
cx_Oracle와 같은 라이브러리를 사용하면 바인딩 변수를 통해 SQL 인젝션을 방지하고 작은따옴표 문제를 자동으로 해결할 수 있습니다.
python
import cx_Oracle
# Oracle 연결 설정
dsn = cx_Oracle.makedsn("your_host", 1521, service_name="your_service")
conn = cx_Oracle.connect("your_username", "your_password", dsn)
cursor = conn.cursor()
# 데이터 삽입
sql = "INSERT INTO your_table (column_name) VALUES (:1)"
data = "Python's flexibility!"
cursor.execute(sql, [data])
conn.commit()
cursor.close()
conn.close()
3. SQL 함수 활용 (QUOTE)
Oracle SQL 자체에서 제공하는 QUOTE 함수를 사용하여 작은따옴표 문제를 해결할 수도 있습니다.
sql
SELECT QUOTE('Python''s flexibility!') FROM dual;
요약
- Escape 처리: 문자열에서 작은따옴표를 두 개로 바꿉니다.
- 바인딩 변수 사용: cx_Oracle을 통해 더 안전하게 처리합니다.
- Oracle SQL 함수: 데이터베이스 자체에서 QUOTE 함수를 활용합니다.
안전한 데이터 삽입을 위해 위 방법 중 상황에 맞는 최적의 방식을 선택하세요!
반응형