반응형
Oracle Database에서 "SET DEFINE OFF"를 사용하는시기 또는 이유
Oracle에서 스크립트를보고 있는데 인식 할 수없는 것이 있습니다.
REM INSERTING into database1."Users"
SET DEFINE OFF;
Insert into database1."Users" ("id","right") values ('1','R');
"set define off"에 대한 문서를 찾고 있는데 문자 그대로 "대체 변수를 값으로 바꾸는 명령 구문 분석 비활성화"라고 작성하고 있습니다.
나는 그들이 무엇을 말하고 싶어하는지 정말로 이해하지 못한다.
누구든지 나를 도울 수 있습니까?
기본적으로 SQL Plus는 '&'를 대체 문자열을 시작하는 특수 문자로 처리합니다. 다른 이유로 '&'가 포함 된 스크립트를 실행할 때 문제가 발생할 수 있습니다.
SQL> insert into customers (customer_name) values ('Marks & Spencers Ltd');
Enter value for spencers:
old 1: insert into customers (customer_name) values ('Marks & Spencers Ltd')
new 1: insert into customers (customer_name) values ('Marks Ltd')
1 row created.
SQL> select customer_name from customers;
CUSTOMER_NAME
------------------------------
Marks Ltd
스크립트에 '&'문자가 포함 된 (또는 포함 할 수있는) 데이터가 있고 위와 같은 대체 동작을 원하지 않는 경우을 사용 set define off
하여 스크립트를 실행하는 동안 동작을 끕니다.
SQL> set define off
SQL> insert into customers (customer_name) values ('Marks & Spencers Ltd');
1 row created.
SQL> select customer_name from customers;
CUSTOMER_NAME
------------------------------
Marks & Spencers Ltd
set define on
스크립트 끝에 추가 하여 기본 동작을 복원 할 수 있습니다.
다음은 그 예입니다.
SQL> set define off;
SQL> select * from dual where dummy='&var';
no rows selected
SQL> set define on
SQL> /
Enter value for var: X
old 1: select * from dual where dummy='&var'
new 1: select * from dual where dummy='X'
D
-
X
를 사용하면 값 set define off
이있는 행을 가져와 &var
사용자에게 값을 입력하라는 메시지를 표시 &var
하고 입력 한 값 (이 경우)으로 X
바꿨습니다.
참조 URL : https://stackoverflow.com/questions/34332639/when-or-why-to-use-a-set-define-off-in-oracle-database
반응형
'code' 카테고리의 다른 글
Android 툴바 메뉴 / 아이콘을 Google지도 앱 에서처럼 왼쪽에 정렬하려면 어떻게해야합니까? (0) | 2021.01.07 |
---|---|
오류 : "%> %"함수를 찾을 수 없습니다. (0) | 2021.01.07 |
병합 커밋없이 git 로그보기 (0) | 2021.01.07 |
C ++의 해시 테이블? (0) | 2021.01.07 |
Solr 쿼리에서 특정 필드를 검색합니까? (0) | 2021.01.07 |