# exec

> La commande stackql exec exécute une instruction StackQL ou un script d'instructions, avec des options de format de sortie, d'authentification et de registre de providers.

Source: https://stackql.io/fr/command-line-usage/exec

Commande servant à exécuter une requête StackQL, soit sous forme d'instruction unique, soit sous forme de lot d'instructions issu d'un script StackQL (fichier IQL).  

* * * 

### Syntaxe

`stackql exec [query] [flags]`

* * *

### Arguments

| Argument | Description | Exemple |
|--|--|--|
|`query`|Requête StackQL à exécuter ou commande à exécuter | `"SELECT * FROM google.compute.instances` `WHERE project = 'myproject' AND zone = 'us-east1-a'"` _Notez que la requête doit être placée entre guillemets simples ou doubles_ |    

### Options

| Option | Description |
|--|--|
|`-o` `--output`|Mode de sortie, les valeurs valides sont : `table` (valeur par défaut), `json`, `jsonl` (JSON délimité par des sauts de ligne, `ndjson` est accepté comme alias), `csv`, `text` et `otel` (enregistrements de journal OpenTelemetry, consultez [Modes de sortie](/getting-started/output-modes#otel-output)), exemple : `--output jsonl` |
|`-i` `--infile`|Exécute la requête depuis le fichier spécifié si nécessaire ; si cette option est spécifiée, toute requête fournie en argument est ignorée, exemple : `--infile myquery.iql` |
|`-q` `--iqldata`|Données source de la commande, issues d'un fichier `json` ou `jsonnet`, exemple : `--iqldata vars.jsonnet`|
|`--dryrun`|Option d'exécution à blanc ; seul le préprocesseur s'exécute et la sortie est renvoyée |
|`--var`|Variables externes (qui peuvent être des variables d'environnement ou des secrets) lues par les fichiers jsonnet spécifiés avec l'option `--iqldata`, exemple `--var region=${AWS_REGION}`|
|`-f` `--outfile`|Fichier dans lequel écrire les résultats si nécessaire (par défaut, les résultats sont uniquement affichés dans la console), exemple `--outfile myoutput.csv`|
|`-H` `--help`|Affiche les informations d'aide|
|`-v` `--verbose`|Exécute les requêtes en mode détaillé, avec une sortie supplémentaire envoyée vers stdout ; si l'option `-f` est sélectionnée, ces informations de journalisation supplémentaires sont écrites dans le fichier de sortie avec les résultats de la requête|

> consultez [Options globales](/command-line-usage/global-flags) pour des options supplémentaires

* * *

### Exemples

Afficher les résultats de la requête dans la console au format tableau :
```shell
stackql exec "SHOW services IN google"
```

Afficher les résultats de la requête dans la console au format json :
```shell
stackql exec "SHOW services IN google" -o json
```

Écrire les résultats de la requête dans un fichier au format json :
```shell
stackql exec "SHOW services IN google" -o json -f services.json
```

Exécuter la requête depuis un fichier d'entrée (fichier IQL) et écrire les résultats dans un fichier au format json :
```shell
stackql exec -i getservices.iql -o json -f services.json
```

* * *

### Code de sortie

`exec` se termine avec le code `0` une fois l'entrée traitée ; les erreurs des instructions individuelles sont écrites dans la console, les scripts doivent donc inspecter la sortie.  À partir de `v1.0`, la commande se termine avec le code `1` lorsqu'une instruction de configuration [`SET`](/language-spec/set) ou [`UNSET`](/language-spec/unset) échoue, lorsque la [gestion des accès](/command-line-usage/access-management) est activée et qu'une instruction est refusée, ou lorsqu'une exécution IaC en préversion signale une ressource en échec.
