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> ... ] ] )
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.Die Namen der Ausgabespalten für diesen Befehl werden in Kleinbuchstaben generiert. Wenn Sie ein Resultset dieses Befehls mit dem Pipe-Operator oder der RESULT_SCAN-Funktion verbrauchen, verwenden Sie Bezeichner mit doppelten Anführungszeichen für die Spaltennamen in der Abfrage, um sicherzustellen, dass sie mit den Spaltennamen in der gescannten Ausgabe übereinstimmen. Wenn der Name einer Ausgabespalte beispielsweise
type
lautet, geben Sie"type"
für den Bezeichner an.
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; | | | | +---------------+----------------------+
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; | | | | +---------------+------------------------------------------------------------------+