DESCRIBE PROCEDURE¶
Décrit la procédure stockée spécifiée, y compris la signature de la procédure stockée (c’est-à-dire les arguments), la valeur de retour, la langue et le corps (c’est-à-dire la définition).
- Voir aussi :
DROP PROCEDURE , ALTER PROCEDURE , CREATE PROCEDURE , SHOW PROCEDURES, SHOW USER PROCEDURES
Syntaxe¶
DESC[RIBE] PROCEDURE <procedure_name> ( [ <arg_data_type> [ , <arg_data_type_2> ... ] ] )
Notes sur l’utilisation¶
Pour décrire une procédure stockée, vous devez spécifier le nom et les types de données d’argument, le cas échéant, de la procédure stockée. Les arguments sont requis, car les procédures stockées prennent en charge la surcharge de noms (c’est-à-dire que deux procédures stockées dans le même schéma peuvent porter le même nom tant que leurs types de données d’argument sont différents).
La propriété
bodyde la sortie affiche le code de la procédure stockée.
Pour post-traiter la sortie de cette commande, vous pouvez utiliser l’opérateur de canal (
->>) ou la fonction RESULT_SCAN. Les deux constructions traitent la sortie comme un jeu de résultats que vous pouvez interroger.Par exemple, vous pouvez utiliser l’opérateur de canal ou la fonction RESULT_SCAN pour sélectionner des colonnes spécifiques à partir de la sortie de la commande SHOW ou pour filtrer les lignes.
Lorsque vous faites référence aux colonnes de sortie, utilisez des identificateurs entre guillemets doubles pour les noms des colonnes. Par exemple, pour sélectionner la colonne de sortie
type, spécifiezSELECT "type".Vous devez utiliser des identificateurs entre guillemets doubles, car les noms des colonnes de sortie pour les commandes SHOW sont en minuscules. Les guillemets doubles garantissent que les noms des colonnes dans la liste SELECT ou dans la clause WHERE correspondent aux noms des colonnes dans la sortie de la commande SHOW qui a été analysée.
Exemples¶
Cet exemple montre comment décrire une procédure stockée sans paramètre :
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; | | | | +---------------+----------------------+
Cet exemple montre comment décrire une procédure stockée ayant un paramètre :
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; | | | | +---------------+------------------------------------------------------------------+