

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.

# Syntaxe SQL pour les instructions préparées
<a name="querying-with-prepared-statements-sql-statements"></a>

Vous pouvez utiliser les instructions SQL `PREPARE`, `EXECUTE` et `DEALLOCATE PREPARE` pour exécuter des requêtes paramétrées dans l'éditeur de requête de la console Athena. 

 
+ Pour spécifier des paramètres là où vous utiliseriez normalement des valeurs littérales, utilisez des points d'interrogation dans l'instruction `PREPARE`.
+ Pour remplacer les paramètres par des valeurs lorsque vous exécutez la requête, utilisez la clause `USING` dans l'instruction `EXECUTE`.
+ Pour supprimer une instruction préparée des instructions préparées dans un groupe de travail, utilisez l'instruction `DEALLOCATE PREPARE`.

Les sections suivantes fournissent des détails supplémentaires sur chacune de ces instructions.

**Topics**
+ [PREPARE](querying-with-prepared-statements-prepare.md)
+ [EXECUTE](querying-with-prepared-statements-execute.md)
+ [DEALLOCATE PREPARE](querying-with-prepared-statements-deallocate-prepare.md)

# PREPARE
<a name="querying-with-prepared-statements-prepare"></a>

Prépare une instruction à exécuter ultérieurement. Les instructions préparées sont enregistrées dans le groupe de travail actif avec le nom que vous spécifiez. L'instruction peut inclure des paramètres à la place des libellés qui seront remplacés lors de l'exécution de la requête. Les paramètres à remplacer par des valeurs sont signalés par des points d'interrogation.

## Syntaxe
<a name="querying-with-prepared-statements-prepare-syntax"></a>

```
PREPARE statement_name FROM statement
```

Le tableau suivant décrit ces paramètres.


****  

| Paramètre | Description | 
| --- | --- | 
| statement\$1name | Nom de l'instruction à préparer. Le nom doit être unique au sein du groupe de travail. | 
| statement | Une requête SELECT, CTAS ou INSERT INTO. | 

## Exemple PREPARE
<a name="querying-with-prepared-statements-prepare-examples"></a>

Les exemples suivants montrent l'utilisation de l'instruction `PREPARE`. Les points d'interrogation indiquent les valeurs à fournir par l'instruction `EXECUTE` lors de l'exécution de la requête.

```
PREPARE my_select1 FROM
SELECT * FROM nation
```

```
PREPARE my_select2 FROM
SELECT * FROM "my_database"."my_table" WHERE year = ?
```

```
PREPARE my_select3 FROM
SELECT order FROM orders WHERE productid = ? and quantity < ?
```

```
PREPARE my_insert FROM
INSERT INTO cities_usa (city, state)
SELECT city, state
FROM cities_world
WHERE country = ?
```

```
PREPARE my_unload FROM
UNLOAD (SELECT * FROM table1 WHERE productid < ?)
TO 's3://amzn-s3-demo-bucket/'
WITH (format='PARQUET')
```

# EXECUTE
<a name="querying-with-prepared-statements-execute"></a>

Exécute une instruction préparée. Les valeurs des paramètres sont spécifiées dans la clause `USING`.

## Syntaxe
<a name="querying-with-prepared-statements-execute-syntax"></a>

```
EXECUTE statement_name [USING value1 [ ,value2, ... ] ]
```

*statement\$1name*est le nom de la déclaration préparée. *value1*et *value2* sont les valeurs à spécifier pour les paramètres de l'instruction.

## Exemples EXECUTE
<a name="querying-with-prepared-statements-execute-examples"></a>

L'exemple suivant exécute l'instruction préparée `my_select1`, qui ne contient aucun paramètre.

```
EXECUTE my_select1
```

L'exemple suivant exécute l'instruction préparée `my_select2`, qui contient un seul paramètre.

```
EXECUTE my_select2 USING 2012
```

L'exemple suivant exécute l'instruction préparée `my_select3`, qui contient deux paramètres.

```
EXECUTE my_select3 USING 346078, 12
```

L'exemple suivant fournit une valeur de chaîne pour un paramètre dans l'instruction préparée `my_insert`.

```
EXECUTE my_insert USING 'usa'
```

L'exemple suivant fournit une valeur numérique pour le paramètre `productid` dans l'instruction préparée `my_unload`.

```
EXECUTE my_unload USING 12
```

# DEALLOCATE PREPARE
<a name="querying-with-prepared-statements-deallocate-prepare"></a>

Supprime l'instruction préparée portant le nom spécifié de la liste des instructions préparées dans le groupe de travail actuel.

## Syntaxe
<a name="querying-with-prepared-statements-deallocate-prepare-syntax"></a>

```
DEALLOCATE PREPARE statement_name
```

*statement\$1name*est le nom de la déclaration préparée à supprimer.

## Exemple
<a name="querying-with-prepared-statements-deallocate-prepare-examples"></a>

L'exemple suivant supprime l'instruction préparée `my_select1` du groupe de travail actuel.

```
DEALLOCATE PREPARE my_select1
```