

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Interrogation à l’aide de la syntaxe de requête UDF
<a name="udf-query-syntax"></a>

La `USING EXTERNAL FUNCTION` clause spécifie un UDF ou un multiple UDFs qui peut être référencé par une `SELECT` instruction ultérieure dans la requête. Vous avez besoin du nom de la méthode de l'UDF et du nom de la fonction Lambda qui héberge l'UDF. À la place du nom de la fonction Lambda, vous pouvez utiliser l'ARN Lambda. Dans les scénarios entre comptes, l'ARN Lambda est requis.

## Résumé
<a name="udf-synopsis"></a>

```
USING EXTERNAL FUNCTION UDF_name(variable1 data_type[, variable2 data_type][,...])
RETURNS data_type
LAMBDA 'lambda_function_name_or_ARN'
[, EXTERNAL FUNCTION UDF_name2(variable1 data_type[, variable2 data_type][,...]) 
RETURNS data_type 
LAMBDA 'lambda_function_name_or_ARN'[,...]]
SELECT  [...] UDF_name(expression) [, UDF_name2(expression)] [...]
```

## Parameters
<a name="udf-parameters"></a>

**UTILISATION D'UNE FONCTION EXTERNE *UDF\$1name* (*variable1**data\$1type*[, *variable2**data\$1type*] [,...])**  
*UDF\$1name*spécifie le nom de l'UDF, qui doit correspondre à une méthode Java au sein de la fonction Lambda référencée. Chacune *variable data\$1type* spécifie une variable nommée et le type de données correspondant que l'UDF accepte en entrée. *data\$1type*Il doit s'agir de l'un des types de données Athena pris en charge répertoriés dans le tableau suivant et correspondre au type de données Java correspondant.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/athena/latest/ug/udf-query-syntax.html)

**RETOURS *data\$1type***  
`data_type` spécifie le type de données SQL que l'UDF renvoie en sortie. Les types de données Athena répertoriés dans le tableau ci-dessus sont pris en charge. Pour le type de `DECIMAL` données, utilisez la syntaxe `RETURNS DECIMAL(precision, scale)` où *precision* et *scale* sont des entiers.

**LAMBDA « » *lambda\$1function***  
*lambda\$1function*spécifie le nom de la fonction Lambda à invoquer lors de l'exécution de l'UDF.

**SÉLECTIONNEZ [...] *UDF\$1name*(*expression*) [...]**  
`SELECT`Requête qui transmet des valeurs à l'UDF et renvoie un résultat. *UDF\$1name*indique l'UDF à utiliser, suivi d'un *expression* UDF évalué pour transmettre des valeurs. Les valeurs transmises et renvoyées doivent correspondre aux types de données correspondants spécifiés pour l'UDF dans la clause `USING EXTERNAL FUNCTION`.

### Exemples
<a name="udf-examples"></a>

Pour des exemples de requêtes basées sur le code [Athena UDFHandler .java activé](https://github.com/awslabs/aws-athena-query-federation/blob/master/athena-udfs/src/main/java/com/amazonaws/athena/connectors/udfs/AthenaUDFHandler.java) GitHub, consultez la page du connecteur GitHub [Amazon Athena UDF](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-udfs). 