insert,update문에서 치환변수 역할 특수문자 ( & )를 문자열의 문자로 등록하기

스폰서 링크
Oracle DB
스폰서 링크

SQL문에서 사용되는 앰퍼샌드(&)는 치환변수의 선두에 붙는 특수문자로 사용됩니다. 이 글에서는 테이블에 데이터를 Insert 또는 Update할 때, 문자열의 일부로서 등록하는 방법을 소개합니다.

스폰서 링크

치환변수 역할

다음과 같이 NY&NY문자열의 &NY 는 치환변수 NY를 의미합니다. 치환 전후를 old, new에 표시하고 치환 후 SQL문이 실행됩니다.

SQL> insert into DEPT (DEPTNO,DNAME,LOC) values (90,'ACCOUNTING','NY&NY');
Enter value for ny: TEST
old   1: insert into DEPT (DEPTNO,DNAME,LOC) values (90,'ACCOUNTING','NY&NY')
new   1: insert into DEPT (DEPTNO,DNAME,LOC) values (90,'ACCOUNTING','NYTEST')
insert into DEPT (DEPTNO,DNAME,LOC) values (90,'ACCOUNTING','NYTEST')

한글 메시지는 다음과 같습니다.

ny의 값을 입력하십시오: TEST

구   1: insert into DEPT (DEPTNO,DNAME,LOC) values (90,'ACCOUNTING','NY&NY')
신   1: insert into DEPT (DEPTNO,DNAME,LOC) values (90,'ACCOUNTING','NYTEST')
insert into DEPT (DEPTNO,DNAME,LOC) values (90,'ACCOUNTING','NYTEST')

문자열의 문자역할

다음과 같이 NY\&NY앰퍼샌드(&) 앞에 escape문자 역 슬래시( \ )를 붙이면 앰퍼샌드(&) 는 문자로서 인식됩니다.

SQL> insert into DEPT (DEPTNO,DNAME,LOC) values (90,'ACCOUNTING','NY\&NY');
1 개의 행이 만들어졌습니다.

실제 테이블에 저장되는 문자열은 다음과 같이 앰퍼샌드(&) 문자로 Insert됩니다.

SQL> select deptno, dname,loc from dept;

DEPTNO DNAME      LOC
------ ---------- -------------
    10 ACCOUNTING NEW YORK
    20 RESEARCH   DALLAS
    30 SALES      CHICAGO
    40 OPERATIONS BOSTON
    90 ACCOUNTING NY&NY

참고로 다음과 같이 SET DEFINE OFF 명령으로 치환변수를 사용 못하도록 설정하면 특수문자 앰퍼샌드(&) 를 문자로 인식합니다. 반대로 SET DEFINE ON 명령은 치환변수 사용을 허용합니다.

SQL> SET DEFINE OFF
SQL> insert into DEPT (DEPTNO,DNAME,LOC) values (90,'ACCOUNTING','NY&NY');
1 개의 행이 만들어졌습니다.

치환변수에 대해서

치환변수에 대한 더 자세한 내용은 다음 글을 참조하십시오.

눈깨비 정보창고 - 분기탱천
마우스 영역 지정 이미지 캡처를 문자 인식 및 번역하기 버튼 클릭 만으로  을 실행 해 주는 소프트웨어를 작성 했습니다. 자세한 도움말은 여기를 참조 하십시오. 웹 서비스 구축 눈깨비가 본업으로 하고 있는 기술적인 ...
눈깨비 정보창고 - 분기탱천
마우스 영역 지정 이미지 캡처를 문자 인식 및 번역하기 버튼 클릭 만으로  을 실행 해 주는 소프트웨어를 작성 했습니다. 자세한 도움말은 여기를 참조 하십시오. 웹 서비스 구축 눈깨비가 본업으로 하고 있는 기술적인 ...
제목과 URL을 복사했습니다