Catégories :

DDL pour les fonctions définies par l’utilisateur, les fonctions externes et les procédures stockées

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 :

ALTER PROCEDURE , CREATE PROCEDURE , SHOW 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é body de la sortie affiche le code JavaScript de la procédure stocké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;                                                 |
|               |                                                                  |
+---------------+------------------------------------------------------------------+