오라클에서 **특수문자(&, ', ", %, @ 등)**를 INSERT할 때 주의할 점과 처리 방법을 정리해 드릴게요.
1. & 문자를 INSERT하는 방법
오라클 SQL*Plus나 SQL Developer에서는 & 문자가 변수 대입 기능(Substitution Variable)으로 인식됩니다.
이를 방지하려면 SET DEFINE OFF 또는 이스케이프 문자를 사용해야 합니다.
방법 1: SET DEFINE OFF 사용 (SQL*Plus, SQL Developer에서 실행)
SET DEFINE OFF; INSERT INTO test_table (col1) VALUES ('AT&T');
- SET DEFINE OFF를 실행하면 & 기호가 변수로 해석되지 않고 문자 그대로 입력됩니다.
방법 2: CHR(38) 사용 (ASCII 코드)
INSERT INTO test_table (col1) VALUES ('AT' || CHR(38) || 'T');
- CHR(38)는 &의 ASCII 코드입니다.
방법 3: 백슬래시(\) 이스케이프 (SQL Developer)
INSERT INTO test_table (col1) VALUES ('AT\&T');
- \&로 입력하면 &가 특수문자로 처리되지 않습니다.
2. 따옴표(', ") 처리 방법
오라클에서는 문자열을 '(작은따옴표)로 감싸므로, 데이터에 '이 포함되면 에러가 발생합니다.
방법 1: 작은따옴표 2개('') 사용
INSERT INTO test_table (col1) VALUES ('O''Reilly');
- 'O'Reilly' → 'O''Reilly'로 변경하면 정상적으로 삽입됩니다.
방법 2: q 표기법 사용 (문자열 구분)
INSERT INTO test_table (col1) VALUES (q'[O'Reilly]');
- q'[...]를 사용하면 문자열 내 '을 그대로 사용할 수 있습니다.
3. %, _, @ 등의 특수문자
- %와 _는 LIKE 연산에서 와일드카드로 사용되지만, INSERT에서는 그대로 입력해도 문제가 없습니다.
- @도 일반적으로 문제없이 삽입됩니다.
INSERT INTO test_table (col1) VALUES ('email@example.com'); INSERT INTO test_table (col2) VALUES ('100% Pure');
4. 역슬래시(\) 처리
- 오라클에서는 기본적으로 \를 이스케이프 문자로 인식하지 않습니다.
- 그대로 입력해도 문제가 없습니다.
INSERT INTO test_table (col1) VALUES ('C:\Users\Oracle');
요약
특수문자 | 해결 방법 |
& | SET DEFINE OFF, CHR(38), \& 사용 |
' (작은따옴표) | ''로 변경, q'[...]' 사용 |
" (큰따옴표) | 그대로 입력 가능하지만, 컬럼명으로 사용 시 "column_name" 형태로 처리 |
%, _ | 그대로 입력 가능 (LIKE 연산에서는 ESCAPE 처리 필요) |
@ | 그대로 입력 가능 |
\ | 그대로 입력 가능 |
특수문자 삽입 시 위 방법을 참고해서 적용하면 됩니다! 😊
'프로그래밍' 카테고리의 다른 글
SaaS Vs 온프레미스(On-Premise) 비교, Hybrid SaaS (0) | 2025.03.21 |
---|---|
클라우드 완벽 정리: 개념, 종류, 장점, 기술, 보안, 활용 사례 (1) | 2025.03.18 |
[WAS] JEUS Vs Tomcat 비교, 네이버와 같은 서비스 IT 회사에서는 Tomcat을 사용하는 이유 (1) | 2025.03.01 |
세션 타임아웃 설정(Session timeout) - WAS, web.xml, Node.js (0) | 2025.02.26 |
MS-SQL 서버 접속 에러 조치 - a network-related or instance-specific error occurred (0) | 2025.02.25 |