SQL 매개변수, SQL 변수, 전역 변수에 대한 참조
SQL 매개변수, SQL 변수, 전역 변수는 표현식 또는 변수가 지정될 수 있는 SQL 프로시저 명령문 내 임의 위치에서 참조될 수 있습니다.
호스트 변수는 SQL 루틴, SQL 트리거 또는 동적 복합
명령문에서 지정될 수 없습니다. SQL 매개변수는 루틴 본문 내 임의
위치에서 참조될 수 있으며 루틴 이름으로 규정될 수 있습니다. SQL
변수는 변수가 선언된 복합 명령문 내 임의
위치에서 참조될 수 있으며 복합 명령문 처음에
지정되는 레이블 이름으로 규정될 수 있습니다. SQL
매개변수 또는 SQL 변수가 행 데이터 유형을 갖는 경우 SQL 매개변수 또는 SQL 변수가
참조될 수 있는 어느 위치에서나 필드가 참조될 수 있습니다. 전역 변수는
표현식이 결정적이지 않아도 되는 경우 표현식 내부에서 참조될 수 있습니다.
다음 시나리오에는 전역 변수를 사용할
수 없게 하는 결정적 표현식이 필요합니다.
- 검사 제한조건
- 생성된 컬럼의 정의
- 인접한 MQT 새로 고침
모든 SQL 매개변수, SQL 변수, 행 변수 필드, 전역 변수는 널 입력 가능한 것으로 간주됩니다. SQL 매개변수, SQL 변수, 행 변수 필드 또는 SQL 루틴의 전역 변수는 루틴에서 참조되는 테이블 또는 뷰의 컬럼 이름과 같을 수 있습니다. SQL 변수 또는 행 변수 필드의 이름은 또한 동일한 루틴에서 선언되는 다른 SQL 변수 또는 행 변수 필드의 이름과 같을 수 있습니다. 두 개의 SQL 변수가 다른 복합 명령문에서 선언되는 경우에 해당할 수 있습니다.SQL 변수의 선언을 포함하는 복합 명령문은 해당 변수의 범위를 결정합니다. 추가 정보는 복합 SQL(컴파일된)문의 내용을 참조하십시오.
SQL 루틴에서 SQL 변수 또는 SQL 매개변수의 이름은
특정 SQL문에서 사용되는 ID의 이름과 동일할 수 있습니다.
이름이 규정되지 않은 경우 다음
규칙은 이름이 ID, SQL 매개변수 또는 SQL
변수를 나타내는지 여부를 설명합니다.
- SET PATH 및 SET SCHEMA문에서는 이름을 SQL 매개변수 또는 SQL 변수로 검사합니다. SQL 변수 또는 SQL 매개변수로 찾을 수 없는 경우에는 ID로 사용됩니다.
- CONNECT, DISCONNECT, RELEASE, SET CONNECTION문에서는 이름이 ID로 사용됩니다.
동일한 이름은 명시적으로 규정되어야 합니다. 이름을
규정함으로써 이름이 컬름, SQL 변수, SQL
매개변수, 행 변수 필드 또는 전역
변수를 나타내는지 여부를 명확하게 표시할 수 있습니다. 이름이
규정되지 않거나 규정되었지만 계속 모호한
경우, 다음 규칙은 이름이 컬럼, SQL 변수, SQL
매개변수 또는 전역 변수를 나타내는지 여부를 설명합니다.
- 루틴이 작성될 때 SQL 루틴 본문에 지정된 테이블과 뷰가 존재하는 경우 이름을 먼저 컬럼 이름으로 확인합니다. 컬럼으로 찾을 수 없는 경우에는 복합 명령문에서 SQL 변수로 검사한 다음 SQL 매개변수로 검사하고 마지막으로 전역 변수로 검사합니다.
- 루틴이 작성될 때 참조된 테이블 또는 뷰가 존재하지 않는 경우에는 이름을 먼저 복합 명령문의 SQL 변수로 검사한 다음 SQL 매개변수로 검사하고 마지막으로 전역 변수로 검사합니다. 변수는 참조를 포함하는 복합 명령문 내부 또는 복합 명령문이 중첩되는 복합 명령문 내부에서 선언될 수 있습니다. 두 SQL 변수가 동일한 범위 내에 있고 이름이 같은 경우에는(예를 들어, 다른 복합 명령문에서 선언되는 경우) 가장 안쪽 복합 명령문에서 선언되는 SQL 변수가 사용됩니다. 찾을 수 없는 경우에는 컬럼으로 가정합니다.