복붙노트

[SQL] 어떻게 SQL 플러스에서 실행하는 SQL 스크립트에서 앰퍼샌드를 무시합니까?

SQL

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

나는 앰퍼샌드 (&)를 포함하는 코멘트와 함께 패키지를 생성하는 SQL 스크립트가 있습니다. 나는 SQL 플러스에서 스크립트를 실행하면, 나는 &로 시작하는 문자열에 대한 대체 값을 입력하라는 메시지입니다. 그 SQL Plus는 앰퍼샌드을 무시 그래서 어떻게하면이 기능을 해제 할 수 있습니까?

해결법

  1. ==============================

    1.이것은 당신을 위해 작동 할 수 있습니다 :

    이것은 당신을 위해 작동 할 수 있습니다 :

    set define off
    

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

    'StackOverflow &' || ' you'
    

    편집 : 나는이 작업은 블로그에서 참조 된 ... 클릭 - 행복 저장할 때이었다.

  2. ==============================

    2.가끔 대체 변수를 사용하는 경우가 꺼 정의를 켜려고하지 않을 수 있습니다. 이러한 경우에는 같이 그 숫자 동등한에서 앰퍼샌드를 변환 할 수 || 대하 (38) || 또는 같은 단일 문자로 추가 || '&'||.

    가끔 대체 변수를 사용하는 경우가 꺼 정의를 켜려고하지 않을 수 있습니다. 이러한 경우에는 같이 그 숫자 동등한에서 앰퍼샌드를 변환 할 수 || 대하 (38) || 또는 같은 단일 문자로 추가 || '&'||.

  3. ==============================

    3.나는 아래의 코드로 해결 :

    나는 아래의 코드로 해결 :

    set escape on
    

    및 왼쪽에서 옆에 \를 넣어 '값 _ \ & _ intert'

  4. ==============================

    4.당신은 SET를 사용에 의해 다른 값으로 스크립트의 실행에 대한보고되는 특수 문자를 설정할 수 있습니다 <1_CHARACTER> DEFINE

    당신은 SET를 사용에 의해 다른 값으로 스크립트의 실행에 대한보고되는 특수 문자를 설정할 수 있습니다 <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>
    
  5. ==============================

    5.세트는 <오프 정의 -이 최고의 솔루션 I의 발견

    세트는 <오프 정의 -이 최고의 솔루션 I의 발견

    나는 또한 시도 ...

    세트 정의}

    나는 앰퍼샌드 문자 '&'포함 된 여러 레코드를 삽입 할 수 있었다 그러나 나는 텍스트로 '}'문자를 사용할 수 없습니다 내가 사용하기로 결정 그래서 "세트 오프 정의"모든 것이 예상대로 작동합니다.

  6. ==============================

    6.이 좋은 FAQ에 따르면 몇 가지 솔루션이 있습니다.

    이 좋은 FAQ에 따르면 몇 가지 솔루션이 있습니다.

    당신은 또한 당신이 설명을 수정할 수 있습니다 경우 백 슬래시 문자 \와 앰퍼샌드 탈출 할 수 있습니다.

  7. ==============================

    7.내가 가진 CASE 문을했을 때 다음 열 = 'sometext 및 더 많은 텍스트'....

    내가 가진 CASE 문을했을 때 다음 열 = 'sometext 및 더 많은 텍스트'....

    나는 그것을 대체 열이 = 언제 'sometext'|| CHR (38) || THEN '더 많은 텍스트'...

    당신은 또한 사용할 수 있습니다 언제 열 LIKE 'sometext _ 더 많은 텍스트'THEN ...

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

  8. from https://stackoverflow.com/questions/118190/how-do-i-ignore-ampersands-in-a-sql-script-running-from-sql-plus by cc-by-sa and MIT license