-- 테스트 테이블 생성
SQL> CREATE TABLE test_str(
val varchar2(10)
);
-- 테이블에 아래와 같이 특수문자를 인서트 할경우
SQL> INSERT INTO test_str VALUES('Q&A');
a의 값을 입력하십시오:
-- 이런 문장이 나옵니다..
-- 특수문자를 갖는 데이터를 인서트 하기 위해서는
-- 다음과 같은 세 가지 해결 방법이 있습니다.
SQL> CREATE TABLE test_str(
val varchar2(10)
);
-- 테이블에 아래와 같이 특수문자를 인서트 할경우
SQL> INSERT INTO test_str VALUES('Q&A');
a의 값을 입력하십시오:
-- 이런 문장이 나옵니다..
-- 특수문자를 갖는 데이터를 인서트 하기 위해서는
-- 다음과 같은 세 가지 해결 방법이 있습니다.
1. 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
-- Substitution Variable(&)을 Turn Off시킨다.
SQL> SET DEFINE OFF
SQL> INSERT INTO test_str VALUES('Q&A');
SQL> SELECT * FROM test_str;
VAL
------
Q&A
2. SET DEFINE %
-- SET DEFINE ON 상태로 유지 시키면서 Substitution Variable을
-- 다른 Non-Alphanumeric 문자나 Non-White Space 문자(*, % 등등)로
-- 대체시킨다.
SQL> SET DEFINE %
SQL> INSERT INTO test_str VALUES('Q&A');
-- 다른 Non-Alphanumeric 문자나 Non-White Space 문자(*, % 등등)로
-- 대체시킨다.
SQL> SET DEFINE %
SQL> INSERT INTO test_str VALUES('Q&A');
3. 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');
-- 특수 문자 앞에 ESCAPE 문자인 BACKSLASH('\')를 붙인다.
SQL> SET ESCAPE ON
SQL> SHOW ESCAPE
ESCAPE "\" (hex 5c)
SQL> INSERT INTO test_str VALUES ('Q\&A');
출처 : 오라클클럽
'DataBase > Oracle SQL' 카테고리의 다른 글
[oracle] dictionary (0) | 2011.01.19 |
---|---|
[oracle] lock , alter session, 현재 접속자의 SQL 분석 (0) | 2011.01.19 |
[Oracle] import/ export (0) | 2010.12.06 |
[Oracle] NLS_LANG CharacterSet 변경 (1) | 2010.12.06 |
[Oracle] ORACLE JOIN (0) | 2010.11.16 |