SQL Plus에서 실행되는 SQL 스크립트에서 앰퍼샌드를 무시하려면 어떻게 해야 합니까?
앰퍼샌드(&)를 포함한 코멘트를 포함한 패키지를 작성하는 SQL 스크립트가 있습니다.SQL Plus에서 스크립트를 실행할 때 &으로 시작하는 문자열의 대체 값을 입력하라는 메시지가 나타납니다.SQL Plus가 앰퍼샌드를 무시하도록 이 기능을 비활성화하려면 어떻게 해야 합니까?
이 방법이 효과적일 수 있습니다.
set define off
그렇지 않으면 앰퍼샌드가 문자열 끝에 있어야 합니다.
'StackOverflow &' || ' you'
편집: 저장할 때 클릭해서 행복했습니다...이것은 블로그에서 인용한 것입니다.
때때로 대체 변수를 사용하는 경우 정의를 해제하지 않을 수 있습니다.이 경우 앰퍼샌드를 에서와 같이 숫자 등가로부터 변환할 수 있습니다.|| Chr(38) ||
또는 에서와 같이 단일 문자로 추가합니다.|| '&' ||
.
아래 코드로 해결했습니다.
set escape on
왼쪽에 \를 붙입니다.'value_\&_intert'
att
스크립트 실행 시 검색되는 특수문자를 다른 값으로 설정하려면SET DEFINE <1_CHARACTER>
디폴트로는 DEFINE 함수 자체는 켜져 있으며 & 로 설정되어 있습니다.
이미 언급한 바와 같이 이 값을 끌 수도 있지만 다른 값으로 설정함으로써 이를 피할 수도 있습니다.어떤 부호를 설정했는지 잘 알고 있어야 합니다.다음 예제에서는 # 문자를 선택했지만, 이 선택은 예에 불과합니다.
SQL> select '&var_ampersand #var_hash' from dual;
Enter value for var_ampersand: a value
'AVALUE#VAR_HASH'
-----------------
a value #var_hash
SQL> set define #
SQL> r
1* select '&var_ampersand #var_hash' from dual
Enter value for var_hash: another value
'&VAR_AMPERSANDANOTHERVALUE'
----------------------------
&var_ampersand another value
SQL>
set define <- 이것이 내가 찾은 최고의 솔루션이다.
저도 노력했는데...
set 정의 }
앰퍼샌드 문자 '&'가 포함된 레코드를 여러 개 삽입할 수 있었지만 텍스트에 '}'자를 사용할 수 없어서 'set define off'를 사용하기로 결정했고 모든 것이 정상적으로 작동합니다.
백슬래시 문자를 사용하여 앰퍼샌드를 벗어날 수도 있습니다.\
코멘트를 변경할 수 있는지 확인합니다.
WHEN 열 = 'sometext & more text'라는 CASE 문구가 있었습니다.
WHEN 열 = 'sometext ' | | CHR(38) | | 'more text'로 대체했습니다.그 후...
WHEN 컬럼을 'somethext - more text'와 같이 사용할 수도 있습니다.그 다음...
(_는 단일 문자의 와일드카드입니다).
언급URL : https://stackoverflow.com/questions/118190/how-do-i-ignore-ampersands-in-a-sql-script-running-from-sql-plus
'it-source' 카테고리의 다른 글
AngularJS가 Access-Control-Allow-Origin 헤더를 검출하지 않음 (0) | 2023.02.25 |
---|---|
Angularjs가 객체를 지시로 전달 (0) | 2023.02.25 |
Json의 PreserveReferencesHandling과 ReferenceLoopHandling의 차이점은 무엇입니까?인터넷? (0) | 2023.02.25 |
JQuery: '잡히지 않은 유형 오류:ajax 요청 시 잘못된 호출' - 여러 요소 (0) | 2023.02.25 |
React useState with functional update 폼이 필요한 이유는 무엇입니까? (0) | 2023.02.25 |