SHOW PROCEDURES

기본 제공 프로시저 및 사용자 정의 프로시저를 포함하여 액세스 권한이 있는 모든 저장 프로시저를 나열합니다.

사용자 정의 프로시저만 나열하는 명령은 SHOW USER PROCEDURES 섹션을 참조하십시오.

참고 항목:

ALTER PROCEDURE , CREATE PROCEDURE , DROP PROCEDURE , DESCRIBE PROCEDURE

구문

SHOW PROCEDURES [ LIKE '<pattern>' ]
  [ IN
    {
      ACCOUNT                                         |

      CLASS <class_name>                              |

      DATABASE                                        |
      DATABASE <database_name>                        |

      SCHEMA                                          |
      SCHEMA <schema_name>                            |
      <schema_name>

      APPLICATION <application_name>                  |
      APPLICATION PACKAGE <application_package_name>  |
    }
  ]
Copy

매개 변수

LIKE 'pattern'

오브젝트 이름으로 명령 출력을 선택적으로 필터링합니다. 이 필터는 SQL 와일드카드 문자(%_) 지원과 함께 대/소문자를 구분하지 않는 패턴 일치를 사용합니다.

예를 들어, 다음 패턴은 같은 결과를 반환합니다.

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...

. 기본값: 값 없음(출력에 필터링이 적용되지 않음).

[ IN ... ]

선택적으로 명령의 범위를 지정합니다. 다음 중 하나를 지정합니다.

ACCOUNT

전체 계정의 레코드를 반환합니다.

DATABASE, . DATABASE db_name

현재 사용 중인 데이터베이스 또는 지정된 데이터베이스(db_name)의 레코드를 반환합니다.

db_name 없이 DATABASE 를 지정하고 사용 중인 데이터베이스가 없는 경우 키워드는 출력에 아무런 영향도 주지 않습니다.

참고

데이터베이스 컨텍스트에서 IN 절 없이 SHOW 명령을 사용하면 예상보다 적은 결과를 얻을 수 있습니다.

IN 절이 사용되지 않는 경우 같은 이름을 가진 오브젝트는 한 번만 표시됩니다. 예를 들어, schema1t1 테이블, schema2t1 테이블이 있고 두 테이블이 모두 지정한 데이터베이스 컨텍스트의 범위에 있는 경우(즉, 선택한 데이터베이스가 schema1schema2 의 부모인 경우), SHOW TABLES 는 t1 테이블 중 하나만 표시합니다.

SCHEMA, . SCHEMA schema_name

현재 사용 중인 스키마 또는 지정된 스키마(schema_name)의 레코드를 반환합니다.

데이터베이스가 사용 중이거나 정규화된 schema_name (예: db.schema)을 지정하는 경우 SCHEMA 는 선택 사항입니다.

사용 중인 데이터베이스가 없으면 SCHEMA 를 지정해도 출력에 아무런 영향도 주지 않습니다.

APPLICATION application_name, . APPLICATION PACKAGE application_package_name

명명된 Snowflake Native App 또는 애플리케이션 패키지에 대한 레코드를 반환합니다.

:code:`IN …`을 생략하는 경우 명령의 범위는 세션에 현재 사용 중인 데이터베이스가 있는지 여부에 따라 다릅니다.

  • If a database is currently in use, the command returns the objects you have privileges to view in the database. This has the same effect as specifying IN DATABASE.

  • If no database is currently in use, the command returns the objects you have privileges to view in your account. This has the same effect as specifying IN ACCOUNT.

사용법 노트

  • 이 명령을 실행하기 위해 실행 중인 웨어하우스가 꼭 필요하지는 않습니다.

  • 이 명령은 현재 사용자의 현재 역할에 하나 이상의 액세스 권한이 부여된 오브젝트만 반환합니다.

  • MANAGE GRANTS 액세스 권한은 그 권한을 보유한 자가 계정에 있는 모든 오브젝트를 볼 수 있도록 암시적으로 허용합니다. 기본적으로, 계정 관리자(ACCOUNTADMIN 역할 이 있는 사용자)와 보안 관리자(SECURITYADMIN 역할이 있는 사용자)만 MANAGE GRANTS 권한을 가집니다.

  • 이 명령의 출력을 후처리하기 위해 파이프 연산자 (->>) 또는 RESULT_SCAN 함수를 사용할 수 있습니다. 두 구문 모두 출력을 쿼리할 수 있는 결과 세트로 간주합니다.

    For example, you can use the pipe operator or RESULT_SCAN function to select specific columns from the SHOW command output or filter the rows.

    When you refer to the output columns, use double-quoted identifiers for the column names. For example, to select the output column type, specify SELECT "type".

    You must use double-quoted identifiers because the output column names for SHOW commands are in lowercase. The double quotes ensure that the column names in the SELECT list or WHERE clause match the column names in the SHOW command output that was scanned.

  • 이 명령은 명령을 실행하는 데 사용된 역할에 대한 액세스 권한에 따라 지정된 오브젝트 유형에 대해 최대 1만 개의 레코드를 반환합니다. 필터를 적용하더라도 1만 개 레코드 제한을 초과하는 레코드는 반환되지 않습니다.

    10,000개 이상의 레코드가 존재하는 결과를 보려면 Snowflake Information Schema 에서 해당 뷰(있는 경우)를 쿼리하십시오.

  • CLASS 를 지정할 경우 이 명령은 다음 열만 반환합니다.

    | name | min_num_arguments | max_num_arguments | arguments | descriptions | language |
    

출력

명령 출력은 다음 열에 프로시저 속성 및 메타데이터를 제공합니다.

설명

created_on

저장 프로시저가 생성된 타임스탬프입니다.

name

저장 프로시저의 이름입니다.

schema_name

저장 프로시저가 존재하는 스키마의 이름입니다.

is_builtin

저장 프로시저가 (사용자 정의되는 게 아니라) 기본 제공되는 경우 Y 이고, 그렇지 않으면 N 입니다.

is_aggregate

현재 적용되지 않습니다.

is_ansi

저장 프로시저가 ANSI 표준에 정의된 경우 Y 이고, 그렇지 않으면 N 입니다.

min_num_arguments

최소 인자 개수입니다.

max_num_arguments

최대 인자 개수입니다.

arguments

인자 및 반환 유형의 데이터 타입입니다. 선택적 인자는 DEFAULT 키워드와 함께 표시됩니다. Snowflake Scripting 저장 프로시저 의 경우, 출력 인자에 대해 ``OUT``이 표시됩니다.

description

저장 프로시저에 대한 설명입니다.

catalog_name

저장 프로시저가 있는 데이터베이스의 이름입니다.

is_table_function

저장 프로시저가 테이블 형식 데이터를 반환하는 경우 Y, 그렇지 않으면 N 입니다.

valid_for_clustering

현재 적용되지 않습니다.

is_secure

저장 프로시저가 안전한 저장 프로시저이면 Y 이고, 그렇지 않으면 N 입니다.

모든 프로시저를 표시합니다.

SHOW PROCEDURES;
Copy

다음은 매개 변수가 있는 저장 프로시저에서 SHOW PROCEDURE 를 사용하는 방법을 보여주는 예입니다. 프로시저의 목록을 지정된 정규식과 일치하는 프로시저로 제한하는 방법을 보여주기도 합니다.

SHOW PROCEDURES LIKE 'area_of_%';
+-------------------------------+----------------+--------------------+------------+--------------+---------+-------------------+-------------------+------------------------------------+------------------------+-----------------------+-------------------+----------------------+-----------+
| created_on                    | name           | schema_name        | is_builtin | is_aggregate | is_ansi | min_num_arguments | max_num_arguments | arguments                          | description            | catalog_name          | is_table_function | valid_for_clustering | is_secure |
|-------------------------------+----------------+--------------------+------------+--------------+---------+-------------------+-------------------+------------------------------------+------------------------+-----------------------+-------------------+----------------------+-----------|
| 1967-06-23 00:00:00.123 -0700 | AREA_OF_CIRCLE | TEMPORARY_DOC_TEST | N          | N            | N       |                 1 |                 1 | AREA_OF_CIRCLE(FLOAT) RETURN FLOAT | user-defined procedure | TEMPORARY_DOC_TEST_DB | N                 | N                    | N         |
+-------------------------------+----------------+--------------------+------------+--------------+---------+-------------------+-------------------+------------------------------------+------------------------+-----------------------+-------------------+----------------------+-----------+
Copy

출력 열은 SHOW FUNCTIONSSHOW USER FUNCTIONS 의 출력 열과 유사합니다. 저장 프로시저의 경우 이러한 열 중 일부는 현재 의미가 없지만(예: is_aggregate, valid_for_clustering), 향후 사용을 위해 예약되어 있습니다.