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> ... ] ] )
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
bodyna 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.Por exemplo, é possível usar o operador de canal ou a função RESULT_SCAN para selecionar colunas específicas da saída do comando SHOW ou filtrar as linhas.
Quando você fizer referência a colunas de saída, use identificadores entre aspas duplas para os nomes das colunas. Por exemplo, para selecionar a coluna de saída
type, especifiqueSELECT "type".Você deve usar identificadores entre aspas duplas porque os nomes das colunas de saída para os comandos SHOW estão em minúsculas. As aspas duplas garantem que os nomes das colunas na lista SELECT ou na cláusula WHERE correspondam aos nomes das colunas na saída do comando SHOW que foi verificada.
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; | | | | +---------------+----------------------+
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; | | | | +---------------+------------------------------------------------------------------+