Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Gäller för:
Databricks SQL Databricks Runtime 17.0 och senare
Endast Unity Catalog
Skapar en procedur i Unity Catalog som tar eller ändrar argument, kör en uppsättning SQL-instruktioner och eventuellt returnerar en resultatuppsättning.
Förutom anrop av positionsparametrar kan du även anropa procedurer med hjälp av namngivna parameteranrop.
Syntax
CREATE [OR REPLACE] PROCEDURE [IF NOT EXISTS]
procedure_name ( [ procedure_parameter [, ...] ] )
[ characteristic [...] ]
AS compound_statement
procedure_parameter
[ IN | OUT | INOUT ] parameter_name data_type
[ DEFAULT default_expression ] [ COMMENT parameter_comment ]
characteristic
{ LANGUAGE SQL |
SQL SECURITY INVOKER |
NOT DETERMINISTIC |
COMMENT procedure_comment |
DEFAULT COLLATION UTF8_BINARY |
MODIFIES SQL DATA }
Parameterar
ELLER ERSÄTT MED
Om det anges ersätts en procedur med samma namn. Du kan inte ersätta en befintlig funktion med en procedur. Du kan inte ange den här parametern med
IF NOT EXISTS.OM DET INTE FINNS
Om det anges skapar du endast proceduren när en procedur med den anteckningen inte redan finns. Om det finns en procedur med samma namn ignoreras instruktionen. Du kan inte ange den här parametern med
OR REPLACE.-
Ett namn på proceduren. Du kan också kvalificera procedurnamnet med ett schemanamn. Om namnet inte är kvalificerat skapas den permanenta proceduren i det aktuella schemat.
Procedurnamnet måste vara unikt för alla rutiner (procedurer och funktioner) i schemat.
procedure_parameter
Anger en parameter för proceduren.
-
Parameternamnet måste vara unikt i proceduren.
IN, INOUT eller OUT
Du kan också beskriva parameterns läge.
I
Definierar enbart en indataparameter. Det här är standardinställningen.
INOUT
Definierar en parameter som accepterar ett argument för indatautdata. Om proceduren slutförs utan ett ohanterat fel returneras det slutliga parametervärdet som utdata.
UT
Definierar en utdataparameter. Parametern initieras till
NULLoch om proceduren slutförs utan ett ohanterat fel returneras det slutliga parametervärdet som utdata.
-
Alla datatyper som stöds.
FÖRVAL default_expression
Ett valfritt standardvärde som ska användas när ett funktionsanrop inte tilldelar ett argument till parametern.
default_expressionmåste kunna typkonverteras tilldata_type. Uttrycket får inte referera till en annan parameter eller innehålla en underfråga.När du anger ett standardvärde för en parameter måste alla följande parametrar också ha ett standardvärde.
DEFAULTstöds inte förOUTparametrar.KOMMENTAR
En valfri beskrivning av parametern.
commentmåste vara ettSTRINGliteralvärde.
-
-
En SQL-sammansatt sats (
BEGIN ... END) med definitionen av SQL-proceduren.När proceduren skapas valideras syntaktisk korrekthet. Procedurens brödtext verifieras inte för semantisk korrekthet förrän proceduren anropas.
karakteristik
Egenskap
SQL SECURITY INVOKERochLANGUAGE SQLkrävs. Alla andra är valfria. Du kan ange valfritt antal egenskaper i valfri ordning, men du kan bara ange varje sats en gång.LANGUAGE SQL
Språket för funktionsimplementeringen.
SQL SECURITY INVOKER
Anger att alla SQL-instruktioner i procedurens brödtext ska köras under överinseende av den användare som anropar proceduren.
När du löser relationer och rutiner i procedurens brödtext använder Azure Databricks den aktuella katalogen och det aktuella schemat vid tidpunkten för anropet.
INTE DETERMINISTISK
En procedur antas vara icke-terministisk, vilket innebär att den kan returnera olika resultat för varje anrop, även när den anropas med samma argument.
KOMMENTAR procedure_comment
En kommentar till proceduren.
procedure_commentmåste varaSTRINGbokstavlig. Standardvärdet ärNULL.STANDARD KOLLATION UTF8_BINARY
Gäller för:
Databricks
Databricks Runtime 17.1 och senareTvingar standardsortering av proceduren till
UTF8_BINARY. Den här satsen är obligatorisk om schemat där proceduren skapas har en annan standardsortering änUTF8_BINARY. Standardsorteringen av proceduren används som standardsortering för procedureparametrar, och som standardsortering för alla strängliteraler och lokala variabler i procedurens kropp.ÄNDRAR SQL DATA
En procedur antas ändra SQL-data.
Exempel
-- Demonstrate INOUT and OUT parameter usage.
> CREATE OR REPLACE PROCEDURE add(x INT, y INT, OUT sum INT, INOUT total INT)
LANGUAGE SQL
SQL SECURITY INVOKER
COMMENT 'Add two numbers'
AS BEGIN
SET sum = x + y;
SET total = total + sum;
END;
> DECLARE sum INT;
> DECLARE total INT DEFAULT 0;
> CALL add(1, 2, sum, total);
> SELECT sum, total;
3 3
> CALL add(3, 4, sum, total);
7 10
-- The last executed query is the result set of a procedure
> CREATE PROCEDURE greeting(IN mode STRING COMMENT 'informal or formal')
LANGUAGE SQL
SQL SECURITY INVOKER
AS BEGIN
SELECT 'Hello!';
CASE mode WHEN 'informal' THEN SELECT 'Hi!';
WHEN 'formal' THEN SELECT 'Pleased to meet you.';
END CASE;
END;
> CALL greeting('informal');
Hi!
> CALL greeting('formal');
Pleased to meet you.
> CALL greeting('casual');
Hello!