

 Amazon Redshift ne prendra plus en charge la création de nouveaux UDFs Python à partir du patch 198. Les fonctions Python définies par l’utilisateur existantes continueront de fonctionner normalement jusqu’au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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.

# STL\_UTILITYTEXT
<a name="r_STL_UTILITYTEXT"></a>

Capture le texte des commandes SQL autres que SELECT exécutées sur la base de données.

Interrogez la vue STL\_UTILITYTEXT pour capturer le sous-ensemble suivant d’instructions SQL exécutées sur le système :
+ ABORT, BEGIN, COMMIT, END, ROLLBACK
+ ANALYSE
+ CALL
+ ANNULER
+ COMMENT
+ CREATE, ALTER, DROP DATABASE
+ CREATE, ALTER, DROP USER
+ EXPLAIN
+ GRANT, REVOKE
+ LOCK
+ RESET
+ SET
+ MONTRER
+ TRUNCATE

Consultez aussi [STL\_DDLTEXT](r_STL_DDLTEXT.md), [STL\_QUERYTEXT](r_STL_QUERYTEXT.md) et [SVL\_STATEMENTTEXT](r_SVL_STATEMENTTEXT.md).

Utilisez les colonnes STARTTIME et ENDTIME pour découvrir quelles instructions ont été enregistrées pendant une période donnée. Les longs blocs de texte SQL sont divisés en lignes de 200 caractères de long ; la colonne SEQUENCE identifie les fragments de texte qui appartiennent à une seule instruction.

La table système STL\_UTILITYTEXT prend en charge les opérations MANUAL et AUTO REFRESH des vues matérialisées. Pour identifier AUTO REFRESH sur les vues matérialisées, recherchez la colonne`label`. Toutes les requêtes AUTO REFRESH possèdent une étiquette avec la valeur `maintenance`.

STL\_\_UTILITYTEXT est visible par tous les utilisateurs. Les super-utilisateurs peuvent voir toutes les lignes, tandis que les utilisateurs standard peuvent voir uniquement leurs propres données. Pour plus d’informations, consultez [Visibilité des données dans les tables et vues système](cm_chap_system-tables.md#c_visibility-of-data).

Tout ou partie des données de cette table sont également disponibles dans la vue de surveillance SYS [SYS\_QUERY\_HISTORY](SYS_QUERY_HISTORY.md). Les données de la vue de surveillance SYS sont formatées pour être plus faciles à utiliser et à comprendre. Nous vous recommandons d’utiliser la vue de surveillance SYS pour vos requêtes.

## Colonnes de la table
<a name="r_STL_UTILITYTEXT-table-columns"></a>


| Nom de la colonne  | Type de données  | Description  | 
| --- | --- | --- | 
| userid | entier | ID de l’utilisateur qui a généré l’entrée. | 
| xid  | bigint  | ID de transaction.  | 
| pid  | entier  | ID de processus associé à l’instruction de la requête.  | 
| étiquette  | caractère (320)  | Le nom du fichier utilisé pour exécuter la requête ou une étiquette définie avec une commande SET QUERY\_GROUP. Si la requête n’est pas basée sur un fichier ou si le paramètre QUERY\_GROUP n’est pas défini, le champ est vide.  | 
| starttime | timestamp | Heure au format UTC du début de la requête. Le temps total inclut la mise en file d'attente et l'exécution avec 6 chiffres de précision pour les fractions de secondes. Par exemple : 2009-06-12 11:29:19.131358. | 
| endtime | timestamp | Heure au format UTC de l’exécution de la requête. Le temps total inclut la mise en file d'attente et l'exécution avec 6 chiffres de précision pour les fractions de secondes. Par exemple : 2009-06-12 11:29:19.131358. | 
| sequence  | entier  | Lorsqu’une seule instruction contient plus de 200 caractères, des lignes supplémentaires sont enregistrées pour l’instruction. Sequence 0 correspond à la première ligne, 1 à la deuxième, et ainsi de suite.  | 
| text  | character(200)  | Texte SQL, par incréments de 200 caractères. Ce champ peut contenir des caractères spéciaux tels qu’une barre oblique inverse (\\\\) et un caractère de saut de ligne (\\n). | 

## Exemples de requêtes
<a name="r_STL_UTILITYTEXT-sample-queries"></a>

La requête suivante renvoie le texte des commandes « utility » exécutées le 26 janvier 2012. Dans ce cas, quelques commandes SET et une commande SHOW ALL ont été exécutées : 

```
select starttime, sequence, rtrim(text)
from stl_utilitytext
where starttime like '2012-01-26%'
order by starttime, sequence;

starttime          | sequence |              rtrim
---------------------------+-----+----------------------------------
2012-01-26 13:05:52.529235 |   0 | show all;
2012-01-26 13:20:31.660255 |   0 | SET query_group to ''
2012-01-26 13:20:54.956131 |   0 | SET query_group to 'soldunsold.sql'
...
```

### Reconstruction de SQL stocké
<a name="r_STL_UTILITYTEXT-reconstruct-sql"></a>

Pour reconstruire le SQL stocké dans la colonne `text` de STL\_UTILITYTEXT, exécutez une instruction SELECT pour créer SQL depuis une ou plusieurs parties de la colonne `text`. Avant d’exécuter le SQL reconstruit, remplacez tout caractère spécial (`\n`) par un saut de ligne. Le résultat de l’instruction SELECT suivante se compose de lignes de SQL reconstruit dans le champ `query_statement`.

```
SELECT LISTAGG(CASE WHEN LEN(RTRIM(text)) = 0 THEN text ELSE RTRIM(text) END) WITHIN GROUP (ORDER BY sequence) as query_statement 
FROM stl_utilitytext GROUP BY xid order by xid;
```

Par exemple, la requête suivante définit une chaîne de zéros pour query\_group. La requête elle-même contient plus de 200 caractères et est stockée dans plusieurs parties de STL\_UTILITYTEXT.

```
set query_group to '00000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000                  000000';
```

Dans cet exemple, la requête est stockée dans deux parties (lignes) de la colonne `text` de STL\_UTILITYTEXT.

```
select query, sequence, text
from stl_utilitytext where query=pg_last_query_id() order by query desc, sequence limit 10;
```

```
         starttime          | sequence |                                                                                                   text                                                                                                   
----------------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 2019-07-23 22:55:34.926198 |        0 | set query_group to '00000000000000000000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000000000000000000000
 2019-07-23 22:55:34.926198 |        1 |                   000000';
```

Pour reconstruire le SQL stocké dans STL\_UTILITYTEXT, exécutez le SQL suivant. 

```
select LISTAGG(CASE WHEN LEN(RTRIM(text)) = 0 THEN text ELSE RTRIM(text) END, '') within group (order by sequence) AS query_statement 
from stl_utilitytext where query=pg_last_query_id();
```

Pour utiliser le SQL reconstruit qui en résulte dans votre client, remplacez tout caractère spécial (`\n`) par un saut de ligne. 

```
                                                                                                                                      query_statement                                                                                                                                       
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 set query_group to '00000000000000000000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000000000000000000000                  000000';
```