DESCRIBE PROCEDURE

Beschreibt die angegebene gespeicherte Prozedur, einschließlich der Signatur (d. h. Argumente), des Rückgabewerts, der Sprache und des Hauptteils (d. h. der Definition) der gespeicherten Prozedur.

Siehe auch:

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

Syntax

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

Nutzungshinweise

  • Um eine gespeicherte Prozedur zu beschreiben, müssen Sie den Namen und ggf. die Argumentdatentypen für die gespeicherte Prozedur angeben. Die Argumente sind erforderlich, da gespeicherte Prozeduren das Überladen von Namen unterstützen (d. h. zwei gespeicherte Prozeduren im selben Schema können denselben Namen haben, solange sich ihre Argumentdatentypen unterscheiden).

  • Die Eigenschaft body in der Ausgabe zeigt den Code für die gespeicherte Prozedur an.

  • Um die Ausgabe dieses Befehls nachzubearbeiten, können Sie den Befehl Pipe-Operator (->>) oder die RESULT_SCAN-Funktion verwenden. Beide Konstrukte behandeln die Ausgabe als Resultset, das Sie abfragen können.

    Sie können zum Beispiel den Pipe-Operator oder die RESULT_SCAN-Funktion verwenden, um bestimmte Spalten aus der SHOW-Befehlsausgabe auszuwählen oder die Zeilen zu filtern.

    Wenn Sie sich auf die Ausgabespalten beziehen, verwenden Sie Bezeichner mit doppelten Anführungszeichen für die Spaltennamen. Um beispielsweise die Ausgabespalte type auszuwählen, geben Sie SELECT "type" an.

    Sie müssen Bezeichner in doppelten Anführungszeichen verwenden, da die Ausgabespaltennamen für SHOW-Befehle in Kleinbuchstaben geschrieben sind. Die doppelten Anführungszeichen stellen sicher, dass die Spaltennamen in der SELECT-Liste oder WHERE-Klausel den Spaltennamen in der SHOW-Befehlsausgabe entsprechen, die gescannt wurde.

Beispiele

Dieses Beispiel veranschaulicht, wie eine gespeicherte Prozedur ohne Parameter beschrieben wird:

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

Dieses Beispiel veranschaulicht, wie eine gespeicherte Prozedur mit einem Parameter beschrieben wird:

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