proc

사용자 정의 프로시저를 실행합니다. 프로시저에 정의된 매개변수 형식에 맞추어 인자를 전달하면, 인자가 쿼리 매개변수로 설정된 후 미리 정의된 쿼리가 실행됩니다.

명령어 속성

항목설명
명령어 유형드라이버 쿼리
필요 권한프로시저 소유자 또는 실행 권한을 부여받은 사용자
라이선스 사용량집계함
병렬 실행미지원
분산 실행미지원

문법

proc PROC_NAME(ARGS, ...)

대상

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 테이블을 준비하려면 쿼리 실습용 데이터를 참고하세요.

  1. 프로시저 호출

    웹 콘솔에서 다음 쿼리를 프로시저 web_errors로 등록합니다. 이 프로시저는 min_status (int 타입)를 매개변수로 받습니다.

    table duration=1d WEB_APACHE_SAMPLE | search status >= $("min_status")
    

    이후 다음과 같이 프로시저를 호출합니다.

    proc web_errors(400)
    

    min_status 매개변수에 400이 전달되어, HTTP 상태 코드가 400 이상인 레코드를 조회합니다.

  2. 여러 매개변수를 가진 프로시저 호출

    다음 쿼리를 프로시저 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_ip192.0.2.1이고 bytes가 1024 이상인 레코드를 조회합니다.

호환성

proc 명령어는 소나 4.0 이전 버전부터 제공되었습니다.