.create function.create function

Crea una funzione archiviata, che è una funzione let di istruzione riutilizzabile con il nome specificato.Creates a stored function, which is a reusable let statement function with the given name. La definizione di funzione viene mantenuta con i metadati del database.The function definition is persisted with the database metadata.

Le funzioni possono chiamare altre funzioni (la ricorsività non è supportata) e let le istruzioni sono consentite come parte del corpo della funzione.Functions can call other functions (recursiveness is not supported), and let statements are allowed as part of the Function Body. Vedere let istruzioni.See let statements.

Le regole per i tipi di parametro let e le istruzioni CSL sono le stesse delle istruzioni .Rules for parameter types and CSL statements are the same as for let statements.

SintassiSyntax

.create``function [ifnotexists]with (``docstring = [ [, folder = Documentazione], skipvalidation = [ NomeCartella] )] [, 'true'] )] NomeFunzione ( NomeParamDigita : ParamType [ ...] ) Funzione {``}.create function [ifnotexists] [with ([docstring = Documentation] [, folder = FolderName] )] [, skipvalidation = 'true'] )] FunctionName ( ParamName : ParamType [, ...] ) { FunctionBody }

OutputOutput

Parametro di outputOutput parameter TypeType DescrizioneDescription
NomeName stringString Nome della funzione.The name of the function.
ParametriParameters stringString Parametri richiesti dalla funzione.The parameters required by the function.
CorpoBody stringString (zero o più) let istruzioni seguite da un'espressione CSL valida che viene valutata in base alla chiamata di funzione.(Zero or more) let statements followed by a valid CSL expression that is evaluated upon function invocation.
CartellaFolder stringString Cartella utilizzata per la categorizzazione delle funzioni dell'interfaccia utente.A folder used for UI functions categorization. Questo parametro non modifica il modo in cui viene richiamata la funzione.This parameter doesn't change the way function is invoked.
Stringa DocStringDocString stringString Descrizione della funzione per scopi dell'interfaccia utente.A description of the function for UI purposes.

Nota

  • Se la funzione esiste già:If function already exists:
    • Se ifnotexists viene specificato flag, il comando viene ignorato (nessuna modifica applicata).If ifnotexists flag is specified, the command is ignored (no change applied).
    • Se ifnotexists flag NON è specificato, viene restituito un errore.If ifnotexists flag is NOT specified, an error is returned.
    • Per modificare una funzione esistente, vedere Funzione .alterFor altering an existing function, see .alter function
  • Richiede l'autorizzazione utente del database.Requires database user permission.
  • Non tutti i tipi let di dati sono supportati nelle istruzioni.Not all data types are supported in let statements. I tipi supportati sono: boolean, string, long, datetime, timespan, double e dynamic.Supported types are: boolean, string, long, datetime, timespan, double, and dynamic.
  • Utilizzare 'skipvalidation' per ignorare la convalida semantica della funzione.Use 'skipvalidation' to skip semantic validation of the function. Ciò è utile quando le funzioni vengono create in un ordine non corretto e F1 che utilizza F2 viene creato in precedenza.This is useful when functions are created in an incorrect order and F1 that uses F2 is created earlier.

esempiExamples

.create function 
with (docstring = 'Simple demo function', folder='Demo')
MyFunction1()  {StormEvents | limit 100}
NomeName ParametriParameters CorpoBody CartellaFolder Stringa DocStringDocString
MyFunction1 (informazioni in base alla proprietà<aMyFunction1 ()() Limite | 100{StormEvents | limit 100} DemoDemo Funzione demo sempliceSimple demo function
.create function
with (docstring = 'Demo function with parameter', folder='Demo')
 MyFunction2(myLimit: long)  {StormEvents | limit myLimit}
NomeName ParametriParameters CorpoBody CartellaFolder Stringa DocStringDocString
Funzione My2MyFunction2 (myLimit:long)(myLimit:long) "StormEvents| limitare myLimit{StormEvents | limit myLimit} DemoDemo Funzione demo con parametroDemo function with parameter