proc
사용자 정의 프로시저를 실행합니다. 프로시저에 정의된 매개변수 형식에 맞추어 인자를 전달하면, 인자가 쿼리 매개변수로 설정된 후 미리 정의된 쿼리가 실행됩니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 드라이버 쿼리 |
| 필요 권한 | 프로시저 소유자 또는 실행 권한을 부여받은 사용자 |
| 라이선스 사용량 | 집계함 |
| 병렬 실행 | 미지원 |
| 분산 실행 | 미지원 |
문법
대상
PROC_NAME(ARGS, ...)- 프로시저 이름과 인자 목록. 프로시저에서 정의한 매개변수 형식에 맞추어 상수로 평가할 수 있는 표현식을 인자로 전달합니다. 프로시저에서 지원하는 매개변수 타입은 다음과 같습니다.
string: 문자열int: 32비트 정수double: 64비트 실수bool: 불리언date: 날짜."yyyy-MM-dd"형식의 문자열 또는 날짜 값을 전달하면 시각을00:00:00으로 잘라냅니다.datetime: 날짜 및 시각."yyyy-MM-dd HH:mm:ss"형식의 문자열 또는 날짜 값을 전달합니다.ip: IP 주소
출력 필드
없음 (데이터 소스에 따라 동적으로 결정)
오류 코드
파싱 오류
| 오류 코드 | 메시지 | 설명 |
|---|---|---|
| 11000 | 프로시저를 찾을 수 없습니다. | 지정한 이름의 프로시저가 존재하지 않는 경우 |
| 11001 | 프로시저 변수가 타입이 맞지 않습니다. | 전달한 인자의 타입이 프로시저 매개변수 타입과 다른 경우 |
| 11002 | 프로시저 소유자를 찾을 수 없습니다. | 프로시저 소유자 계정이 존재하지 않는 경우 |
| 11003 | 프로시저의 인자 수가 맞지 않습니다. | 전달한 인자 수와 프로시저 매개변수 수가 다른 경우 |
| 11004 | 프로시저 실행 권한이 없습니다. | 프로시저 소유자가 아니고 실행 권한도 부여받지 않은 경우 |
런타임 오류
해당 사항 없음
설명
proc 명령어는 사전에 등록한 프로시저를 실행합니다. 프로시저는 쿼리 문자열과 매개변수 정의로 구성되며, 프로시저를 호출하면 전달한 인자가 쿼리 매개변수로 설정된 후 프로시저에 정의된 쿼리가 실행됩니다.
프로시저의 소유자 또는 실행 권한을 부여받은 사용자만 호출할 수 있으며, 프로시저 내부 쿼리는 프로시저 소유자의 권한으로 실행됩니다. 이를 통해 특정 쿼리에 대한 접근 권한을 세밀하게 관리할 수 있습니다.
프로시저 내부의 쿼리 문자열에서 $() 함수로 매개변수 값을 참조할 수 있습니다.
사용 예
이 사용 예에서 조회하는 WEB_APACHE_SAMPLE 테이블을 준비하려면 쿼리 실습용 데이터를 참고하세요.
-
프로시저 호출
웹 콘솔에서 다음 쿼리를 프로시저
web_errors로 등록합니다. 이 프로시저는min_status(int 타입)를 매개변수로 받습니다.table duration=1d WEB_APACHE_SAMPLE | search status >= $("min_status")이후 다음과 같이 프로시저를 호출합니다.
proc web_errors(400)min_status매개변수에400이 전달되어, HTTP 상태 코드가 400 이상인 레코드를 조회합니다. -
여러 매개변수를 가진 프로시저 호출
다음 쿼리를 프로시저
search_access로 등록합니다. 이 프로시저는src(string 타입)와min_bytes(int 타입)를 매개변수로 받습니다.table duration=1d WEB_APACHE_SAMPLE | search src_ip == $("src") and bytes >= $("min_bytes")다음과 같이 호출합니다.
proc search_access("192.0.2.1", 1024)src_ip가192.0.2.1이고bytes가 1024 이상인 레코드를 조회합니다.
호환성
proc 명령어는 소나 4.0 이전 버전부터 제공되었습니다.