DESCRIBE PROCEDURE

Descreve o procedimento armazenado especificado, incluindo assinatura (isto é, argumentos), valor de retorno, linguagem e corpo (isto é, definição) do procedimento armazenado.

Consulte também:

DROP PROCEDURE , ALTER PROCEDURE , CREATE PROCEDURE , SHOW PROCEDURES, SHOW USER PROCEDURES

Sintaxe

DESC[RIBE] PROCEDURE <procedure_name> ( [ <arg_data_type> [ , <arg_data_type_2> ... ] ] )
Copy

Notas de uso

  • Para descrever um procedimento armazenado, você deve especificar o nome e o(s) tipo(s) de dados de argumento, se houver, para o procedimento armazenado. Os argumentos são necessários porque os procedimentos armazenados oferecem suporte à sobrecarga de nomes (ou seja, dois procedimentos armazenados no mesmo esquema podem ter o mesmo nome desde que seus tipos de dados de argumento sejam diferentes).

  • A propriedade body na saída exibe o código para o procedimento armazenado.

  • Para pós-processar a saída deste comando, você pode usar o operador de canal (->>) ou a função RESULT_SCAN. Ambos os constructos tratam a saída como um conjunto de resultados que você pode consultar.

    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.

Exemplos

Este exemplo mostra como descrever um procedimento armazenado que não tem parâmetros:

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;  |
|               |                      |
+---------------+----------------------+
Copy

Este exemplo mostra como descrever um procedimento armazenado que tem um parâmetro:

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;                                                 |
|               |                                                                  |
+---------------+------------------------------------------------------------------+
Copy