- 카테고리:
GENERATOR¶
지정된 행 수, 지정된 생성 기간(초), 또는 둘 다를 기반으로 데이터 행을 만듭니다. 이 시스템 정의 테이블 함수는 가상 행 생성을 활성화합니다.
열은 0개이지만 행은 많을 수도 있는 가상 테이블을 생성할 수 있습니다. 이러한 가상 테이블은 SELECT 절이 전적으로 데이터 생성 함수로 구성된 쿼리에 유용합니다.
구문¶
사용법 노트¶
count및sec은 음이 아닌 정수 상수여야 합니다.ROWCOUNT인자만 지정된 경우, 결과 테이블에는count행이 포함됩니다.TIMELIMIT인자만 지정된 경우, 쿼리는sec초 동안 실행되어, 시간 프레임 내에서 가능한 한 많은 행을 생성합니다. 정확한 행 수는 시스템 속도에 따라 달라지며 완전히 결정적이지는 않습니다.ROWCOUNT및TIMELIMIT인자가 모두 지정된 경우:TIMELIMIT전에ROWCOUNT에 도달하면 결과 테이블에count행이 포함됩니다.ROWCOUNT전에TIMELIMIT에 도달하면 테이블에는 시간 프레임 내에 생성된 행 수가 포함됩니다. 정확한 행 수는 시스템 속도에 따라 달라지며 완전히 결정적이지는 않습니다.
ROWCOUNT또는TIMELIMIT가 null이면 무시됩니다. 따라서generator(ROWCOUNT => null)은 0개의 행을 생성합니다.두 매개 변수(
ROWCOUNT및TIMELIMIT)가 모두 생략되면 GENERATOR 함수는 0개의 행을 반환합니다.행의 내용은 GENERATOR 함수 자체가 아니라 프로젝션 절의 함수에 의해 결정됩니다. 자세한 내용은 아래의 예 섹션을 참조하십시오. 또한, 프로젝션 절에서 사용하려는 특정 함수(예: SEQ())에 대한 설명을 참조하십시오. 모든 유효한 함수가 갭 없는 시퀀스를 생성하는 것은 아닙니다.
예¶
참고
이러한 예는 갭이 있을 수 있는 시퀀스를 생성합니다. 간격 없이 시퀀스를 생성하는 예는 SEQ1 / SEQ2 / SEQ4 / SEQ8 및 ROW_NUMBER 섹션을 참조하십시오.
이 예에서는 GENERATOR 함수를 사용하여 10개의 행을 생성합니다. 행의 내용은 프로젝션 절의 함수에 의해 결정됩니다.
SEQ4() 열은 0부터 시작하는 4바이트 정수 시퀀스를 생성합니다.
UNIFORM(…) 열은 함수 또는 세 번째 매개 변수로서 전달된 상수를 기반으로 첫 번째 매개 변수(1)와 두 번째 매개 변수(10) 사이의 값을 생성합니다.
이 예에는 출력이 일관되도록 RANDOM() 함수에 대한 선택적 “시드”가 포함됩니다.
이 예는 UNIFORM 함수에 세 번째 매개 변수로서 함수가 아닌 상수를 전달한다는 점을 제외하고는 앞의 예와 유사합니다. 결과는 UNIFORM 열의 출력이 모든 행에 대해 동일하다는 것입니다.
ROWCOUNT 및 TIMELIMIT 매개 변수를 모두 생략하면 출력은 0행입니다.
다음 예에서는 ROWCOUNT 매개 변수 없이 TIMELIMIT 매개 변수를 사용합니다.