DESCRIBE PROCEDURE
DESCRIBE PROCEDURE
DESCRIBE PROCEDURE 명령은 지정된 저장 프로시저(stored procedure)를 설명하는 명령이에요. 저장 프로시저의 시그니처(인자), 반환값, 언어, 본문(정의)을 포함합니다. DESCRIBE는 DESC로 줄여 쓸 수 있어요.
본문
지정된 저장 프로시저를 설명하는 명령입니다. 저장 프로시저의 시그니처(즉 인자), 반환값, 언어, 본문(즉 정의)을 포함해요.
관련 명령: DROP PROCEDURE, ALTER PROCEDURE, CREATE PROCEDURE, SHOW PROCEDURES, SHOW USER PROCEDURES
Syntax
DESC[RIBE] PROCEDURE <procedure_name> ( [ <arg_data_type> [ , <arg_data_type_2> ... ] ] )
Usage notes (사용 참고 사항)
저장 프로시저를 설명하려면 이름과 인자 데이터 유형(있는 경우)을 지정해야 해요. 저장 프로시저는 이름 오버로딩(같은 스키마의 두 저장 프로시저가 인자 데이터 유형만 다르면 같은 이름을 가질 수 있음)을 지원하므로 인자가 필요합니다. 출력의 body 속성은 저장 프로시저의 코드를 표시해요.
이 명령의 출력을 후처리하려면 파이프 연산자(->>)나 RESULT_SCAN 함수를 사용할 수 있어요. 두 구성 모두 출력을 쿼리할 수 있는 결과 집합으로 취급합니다. 예를 들어 파이프 연산자나 RESULT_SCAN 함수를 사용해 SHOW 명령 출력에서 특정 컬럼을 선택하거나 행을 필터링할 수 있어요.
출력 컬럼을 참조할 때는 컬럼 이름에 큰따옴표로 감싼 식별자를 사용하세요. 예를 들어 출력 컬럼 유형을 선택하려면 SELECT "type"을 지정해요. SHOW 명령의 출력 컬럼 이름이 소문자이므로 큰따옴표로 감싼 식별자를 사용해야 합니다. 큰따옴표는 SELECT 목록이나 WHERE 절의 컬럼 이름이 스캔된 SHOW 명령 출력의 컬럼 이름과 일치하도록 보장해요.
Examples (예제)
이 예제는 파라미터가 없는 저장 프로시저를 설명하는 방법을 보여줘요.
DESC PROCEDURE my_pi();
+---------------+----------------------+
| property | value |
|---------------+----------------------|
| signature | () |
| returns | FLOAT |
| language | JAVASCRIPT |
| null handling | CALLED ON NULL INPUT |
| volatility | VOLATILE |
| execute as | CALLER |
| body | |
| | return 3.1415926; |
| | |
+---------------+----------------------+
이 예제는 파라미터가 있는 저장 프로시저를 설명하는 방법을 보여줘요.
DESC PROCEDURE area_of_circle(FLOAT);
+---------------+------------------------------------------------------------------+
| property | value |
|---------------+------------------------------------------------------------------|
| signature | (RADIUS FLOAT) |
| returns | FLOAT |
| language | JAVASCRIPT |
| null handling | CALLED ON NULL INPUT |
| volatility | VOLATILE |
| execute as | OWNER |
| body | |
| | var stmt = snowflake.createStatement( |
| | {sqlText: "SELECT pi() * POW($RADIUS, 2)", binds:[RADIUS]} |
| | ); |
| | var rs = stmt.execute(); |
| | rs.next() |
| | var output = rs.getColumnValue(1); |
| | return output; |
| | |
+---------------+------------------------------------------------------------------+