본문 바로가기

Develop/Database & SQL

Ampersand나 특수 문자를 갖는 데이타를 insert하는 방법

-- 테스트 테이블 생성
SQL> CREATE TABLE test_str(
        val varchar2(10)
     );
 
 
-- 테이블에 아래와 같이 특수문자를 인서트 할경우
SQL> INSERT INTO test_str VALUES('Q&A');
a의 값을 입력하십시오: 
-- 이런 문장이 나옵니다..  
-- 특수문자를 갖는 데이터를 인서트 하기 위해서는 
-- 다음과 같은 세 가지 해결 방법이 있습니다.
    

SET DEFINE OFF

 
-- SQL*Plus에서 SET DEFINE OFF나 SET SCAN OFF를 실행하여 
-- Substitution Variable(&)을 Turn Off시킨다.

SQL> SET DEFINE OFF
SQL> INSERT INTO test_str VALUES('Q&A');

SQL> SELECT * FROM test_str;
     VAL
     ------
     Q&A
    

SET DEFINE %

 
-- SET DEFINE ON 상태로 유지 시키면서 Substitution Variable을 
-- 다른 Non-Alphanumeric 문자나 Non-White Space 문자(*, % 등등)로 
-- 대체시킨다. 
  
SQL> SET DEFINE %
SQL> INSERT INTO test_str VALUES('Q&A');
    

SET ESCAPE ON

 
-- SET ESCAPE ON 상태에서(DEFINE은 &로, SCAN은 ON 상태로 유지) 
-- 특수 문자 앞에 ESCAPE 문자인 BACKSLASH('\')를 붙인다.
 
SQL> SET ESCAPE ON
SQL> SHOW ESCAPE 
     ESCAPE "\" (hex 5c)
SQL> INSERT INTO test_str VALUES ('Q\&A');
    


출처 - http://www.gurubee.net/lecture/1148

'Develop > Database & SQL' 카테고리의 다른 글

Oracle 날짜 관련 함수  (0) 2019.03.19
Oracle SQL Developer Setting  (0) 2018.12.17
[MySQL] 데이터베이스 명명 규칙  (0) 2018.10.30
오라클 쿼리 테스트  (0) 2017.04.26
SQL서버 응응프로그램의 속도향상  (0) 2005.02.27