SQL Plus에서 실행되는 SQL 스크립트에서 앰퍼샌드를 어떻게 무시합니까?

StackOverflow https://stackoverflow.com/questions/118190

  •  02-07-2019
  •  | 
  •  

문제

앰퍼샌드(&)가 포함된 주석으로 패키지를 생성하는 SQL 스크립트가 있습니다.SQL Plus에서 스크립트를 실행하면 &로 시작하는 문자열에 대체 값을 입력하라는 메시지가 표시됩니다.SQL Plus가 앰퍼샌드를 무시하도록 이 기능을 비활성화하려면 어떻게 해야 합니까?

도움이 되었습니까?

해결책

이것은 당신에게 도움이 될 수 있습니다:

set define off

그렇지 않으면 앰퍼샌드가 문자열 끝에 있어야 합니다.

'StackOverflow &' || ' you'

편집하다:저장할 때 클릭해서 행복했어요...이것은 다음에서 참조되었습니다. 블로그.

다른 팁

때때로 대체 변수를 사용하는 경우 정의를 끄고 싶지 않을 수도 있습니다.이러한 경우에는 다음과 같이 앰퍼샌드를 해당 숫자에서 변환할 수 있습니다. || Chr(38) || 또는 다음과 같이 단일 문자로 추가합니다. || '&' ||.

아래 코드로 해결했습니다.

set escape on

그리고 왼쪽에 & 옆에 \를 넣으세요 'value_\&_intert'

Att

스크립트 실행 시 찾는 특수문자를 다음과 같은 방법으로 다른 값으로 설정할 수 있습니다. SET DEFINE <1_CHARACTER>

기본적으로 DEFINE 기능 자체는 On으로 되어 있으며, &

이미 언급한 것처럼 끌 수 있지만 다른 값으로 설정하여 끌 수도 있습니다.어떤 기호로 설정했는지 잘 알고 있어야 합니다.아래 예에서는 # 문자를 선택했지만 그 선택은 단지 예일 뿐입니다.

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 정의 off <- 이것이 내가 찾은 최고의 솔루션입니다.

나도 노력했는데...

정의 설정 }

Ampersand Char

에 따르면 이 좋은 FAQ 몇 가지 해결책이 있습니다.

백슬래시 문자를 사용하여 앰퍼샌드를 이스케이프 처리할 수도 있습니다. \ 댓글을 수정할 수 있는 경우.

WHEN 열 = 'sometext & more text' THEN ...을 사용하는 CASE 문이 있습니다.

column = 'sometext'|| chr (38) || 그때 '더 많은 텍스트'...

'sometext _ more text'와 같은 열면 사용할 수도 있습니다.

(_는 단일 문자에 대한 와일드카드입니다)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top