스크립트에서 인용 부호 사용

스크립트 문에서 다양한 방식으로 인용 부호를 사용할 수 있습니다.

LOAD 문 내부

LOAD 문 내에서는 다음 기호를 인용 부호로 사용해야 합니다.

  설명 기호 코드 포인트

필드 이름

큰따옴표

" " 34 "string"
  대괄호 [ ] 91, 93 [string]
  억음 악센트 기호 ` ` 96 `string`

문자열 리터럴

작은따옴표

' '

39 'string'

SELECT 문 내부

ODBC 드라이버에 의해 해석되는 SELECT 문의 경우 약간 다를 수 있습니다. 보통 필드 이름 및 테이블 이름에 큰따옴표((Alt + 0034))를 사용하고, 리터럴에 작은따옴표((Alt + 0039))를 사용하며, 억음 악센트 기호는 사용하지 않습니다. 하지만 일부 ODBC 드라이버는 억음 악센트 기호를 인용 부호로 허용하며 이를 선호하기도 합니다. 이러한 경우 생성된 SELECT 문에는 억음 악센트 인용 부호가 포함됩니다.

Microsoft Access 인용 부호 예

Microsoft Access ODBC Driver 3.4(Microsoft Access 7.0에 포함)에서는 SELECT 문을 분석할 때 다음과 같은 인용 부호를 사용할 수 있습니다.

필드 이름 및 테이블 이름:

[ ]

" " ` `

문자열 리터럴:

' '

다른 데이터베이스는 다른 규칙을 사용할 수 있습니다.

LOAD 문 외부

QlikView에서 표현식을 필요로 하는 LOAD 문 외부에서 큰따옴표는 필드 참조가 아닌 변수 참조를 의미합니다. 큰따옴표를 사용하는 경우 따옴표로 묶인 문자열은 변수로 해석되며 변수의 값이 사용됩니다.

컨텍스트 외부 필드 참조 및 테이블 참조

일부 스크립트 함수는 이미 생성되었거나 LOAD 문의 출력에 있는 필드를 참조합니다(예: Exists()Peek()). 이러한 필드 참조는 컨텍스트 외부 필드 참조로 불리며 컨텍스트 내 즉, LOAD 문의 입력 테이블 내에 있는 필드를 참조하는 소스 필드 참조와 반대되는 의미입니다.

컨텍스트 외부 필드 참조 및 테이블 참조는 리터럴로 간주해야 하며 따라서 작은따옴표를 사용해야 합니다.

이름과 리터럴의 차이점

다음 예를 비교하면 이름과 리터럴의 차이점을 확실히 알 수 있습니다.

Example:  

'Sweden' as Country

이 표현식이 LOAD 또는 SELECT 문에서 필드 목록의 한 부분으로 사용되면 텍스트 문자열 "Sweden"이 QlikView의 "Country" 필드에 필드 값으로 로드됩니다.

Example:  

"land" as Country

이 표현식이 LOAD 또는 SELECT 문에서 필드 목록의 한 부분으로 사용되면 "land"라는 이름의 데이터베이스 필드 또는 테이블 열의 내용이 QlikView의 "Country" 필드에 필드 값으로 로드됩니다. 즉, land가 필드 참조로 처리됩니다.

숫자와 문자열 리터럴의 차이점

다음 예를 비교하면 숫자와 문자열 리터럴의 차이점을 확실히 알 수 있습니다.

Example:  

'12/31/96'

이 문자열이 표현식의 한 부분으로 사용되면 첫 번째 단계로 문자열이 텍스트 문자열 "12/31/96"으로 해석되어, 결과적으로 날짜 서식이 'MM/DD/YY'인 경우에는 날짜로 해석될 수 있습니다. 이런 경우 숫자 표시와 텍스트 표시가 모두 가능한 이중 값으로 저장됩니다.

Example:  

12/31/96

이 문자열이 표현식의 한 부분으로 사용되면 문자열이 숫자로 해석되어 12 나누기 31 나누기 96이 됩니다.

문자열에서 인용 부호 사용

문자열에 인용 부호로 사용할 수 있는 문자가 포함되어 있으면 문자열을 인용할 때 문자열의 시작 위치와 종료 위치를 명확하게 나타내는 것이 중요합니다. 문자열이 제대로 인용되지 않으면 스크립트가 실패하거나 데이터를 잘못 로드합니다.

인용 부호가 포함된 문자열을 인용하는 두 가지 방법이 있습니다.

특정 인용 부호를 사용하여 문자열 인용

문자열 내에서 사용되지 않는 인용 부호를 선택하고 이를 사용하여 전체 문자열을 인용합니다. QlikView에서 이 특정 인용 부호를 사용하여 문자열의 시작 및 끝 위치를 결정합니다.

다음 인용 부호 중 하나를 사용하여 전체 문자열을 인용할 수 있습니다.

  • 큰따옴표 " "
  • 대괄호 [ ]
  • 억음 악센트 기호 ` `
  • 작은따옴표 ' '

Example:  

[테이블 '1 "2"]

대괄호가 문자열을 인용할 때 사용됩니다. 문자열이 다음과 같이 로드됩니다. 테이블 '1 "2"

'string `Name1` "Name2'

작은따옴표가 문자열을 인용할 때 사용됩니다. 문자열이 다음과 같이 로드됩니다. string `Name1` "Name2

이스케이프 문자 사용

이스케이프 문자는 문자열을 인용하는 데 사용되는 인용 부호의 추가 인스턴스입니다. 문자열 내에 나타나는 인용 부호의 모든 인스턴스 옆에 추가해야 합니다. 모든 인용 부호가 문자열 내에서 사용되면 문자열을 인용하는 데 사용한 것과 동일한 인용 부호 유형 옆에 이스케이프 문자를 추가해야 합니다. 이스케이프 문자는 이미 문자열에서 사용 중인 인용 부호를 사용하려는 경우에도 사용할 수 있습니다.

다음 부호만 이스케이프 문자로 사용할 수 있습니다.

  • 큰따옴표 " "
  • 대괄호 [ ]
  • 작은따옴표 ' '

Example:  

"Michael said ""It's a beautiful day""."

큰따옴표 " "를 사용하여 문자열을 인용하는 경우 문자열 내에 사용된 모든 큰따옴표 옆에 큰따옴표를 추가해야 합니다.

이 문자열은 Michael said "It's a beautiful day".로 로드됩니다. 이스케이프 문자 ""를 사용하여 QlikView 스크립트 편집기는 어떤 큰따옴표가 문자열의 일부인지, 어떤 인용 부호가 문자열의 끝을 나타내는지 파악합니다. 약어 It's에서 사용되는 작은따옴표 '는 문자열을 인용하는 데 사용되는 부호가 아니기 때문에 이스케이프할 필요가 없습니다.

Example:  

'Michael said: "It''s a beautiful day".'

작은따옴표를 사용하여 이 문자열을 인용하는 경우 문자열 내에 사용된 작은따옴표 옆에 작은따옴표를 추가해야 합니다.

이 문자열은 Michael said "It's a beautiful day".로 로드됩니다. Michael이 말한 내용을 인용하기 위해 사용되는 큰따옴표 "는 문자열을 인용하는 데 사용되는 부호가 아니기 때문에 이스케이프할 필요가 없습니다.

Example:  

[Michael said [It's a "beautiful day]].]

대괄호 [ ]는 다른 두 개의 인용 부호와 다른 역할을 합니다. 대괄호를 이스케이프 문자로 사용하려면 왼쪽 대괄호 [ 옆이 아닌 오른쪽 대괄호 ] 옆에만 대괄호를 추가해야 합니다.

이 문자열은 Michael said [It's a "beautiful day].로 로드됩니다. 오른쪽 대괄호 ]만 이스케이프됩니다. 문자열에 사용된 작은따옴표 ' 및 큰따옴표 "는 문자열을 인용하는 데 사용되지 않으므로 이스케이프할 필요가 없습니다.