

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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

Captura o texto de comandos não SELECT SQL executados no banco de dados.

Consulte a visualização STL\_UTILITYTEXT para capturar o seguinte subconjunto de instruções SQL que foram executadas no sistema:
+ ABORT, BEGIN, COMMIT, END, ROLLBACK
+ ANALYZE
+ CALL
+ CANCEL
+ COMMENT
+ CREATE, ALTER, DROP DATABASE
+ CREATE, ALTER, DROP USER
+ EXPLAIN
+ GRANT, REVOKE
+ LOCK
+ RESET
+ SET
+ SHOW
+ TRUNCATE

Consulte também [STL\_DDLTEXT](r_STL_DDLTEXT.md), [STL\_QUERYTEXT](r_STL_QUERYTEXT.md) e [SVL\_STATEMENTTEXT](r_SVL_STATEMENTTEXT.md).

Use as colunas STARTTIME e ENDTIME para saber quais instruções foram registradas em um determinado período. Os blocos longos de texto SQL são quebrados em linhas de 200 caracteres; a coluna SEQUENCE identifica os fragmentos de texto que pertencem a uma única instrução.

A tabela de sistema STL\_UTILITYTEXT permite as operações MANUAL e AUTO REFRESH nas visões materializadas. Para identificar AUTO REFRESH em visões materializadas, encontre a coluna `label`. Todas as consultas AUTO REFRESH têm um rótulo com o valor `maintenance`.

STL\_UTILITYTEXT permanece visível para todos os usuários. Os superusuários podem ver todas as linhas; usuários regulares podem ver somente seus próprios dados. Para obter mais informações, consulte [Visibilidade de dados em tabelas e visualizações de sistema](cm_chap_system-tables.md#c_visibility-of-data).

Alguns ou todos os dados nessa tabela também podem ser encontrados na exibição de monitoramento SYS [SYS\_QUERY\_HISTORY](SYS_QUERY_HISTORY.md). Os dados na exibição de monitoramento SYS são formatados para serem mais fáceis de usar e compreender. É recomendável usar a exibição de monitoramento SYS nas consultas.

## Colunas da tabela
<a name="r_STL_UTILITYTEXT-table-columns"></a>


| Nome da coluna  | Tipo de dados  | Descrição  | 
| --- | --- | --- | 
| userid | integer | O ID do usuário que gerou a entrada. | 
| xid  | bigint  | ID da transação.  | 
| pid  | integer  | O ID do processo associado à instrução da consulta.  | 
| rótulo  | character(320)  | O nome do arquivo usado para executar a consulta ou um rótulo definido com o comando SET QUERY\_GROUP. Se a consulta não for baseada em arquivos ou o parâmetro QUERY\_GROUP não estiver definido, o valor deste campo será branco.  | 
| starttime | timestamp | O horário (em UTC) de início da consulta. O tempo total inclui consultas e execução, com seis dígitos de precisão para segundos fracionários. Por exemplo: 2009-06-12 11:29:19.131358. | 
| endtime | timestamp | Horário em UTC em que a consulta foi finalizada. O tempo total inclui consultas e execução, com seis dígitos de precisão para segundos fracionários. Por exemplo: 2009-06-12 11:29:19.131358. | 
| sequence  | integer  | Quando uma única instrução contém mais de 200 caracteres, são registradas linhas adicionais para essa instrução. O valor 0 da sequência é a primeira linha, 1 é a segunda, e assim por diante.  | 
| texto  | character(200)  | O texto em SQL, em incrementos de 200 caracteres. Esse campo pode conter caracteres especiais como barra invertida (\\\\) e nova linha (\\n). | 

## Consultas de exemplo
<a name="r_STL_UTILITYTEXT-sample-queries"></a>

A consulta a seguir retorna o texto dos comandos de “utilitário” que foram executados em 26 de janeiro de 2012. Nesse caso, alguns comandos SET e um SHOW ALL foram executados: 

```
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'
...
```

### Reconstrução de SQL armazenado
<a name="r_STL_UTILITYTEXT-reconstruct-sql"></a>

Para reconstruir o SQL armazenado na coluna `text` de STL\_UTILITYTEXT, execute uma instrução SELECT para criar SQL a partir de uma ou mais partes na coluna `text`. Antes de executar o SQL reconstruído, substitua os caracteres especiais por uma nova linha (`\n`). O resultado da instrução SELECT a seguir são linhas de SQL reconstruído no campo `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;
```

Por exemplo, a consulta a seguir define query\_group como uma string de zeros. A consulta em si tem mais de 200 caracteres e é armazenada em partes em STL\_UTILITYTEXT.

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

Nesse exemplo, a consulta é armazenada em duas partes (linhas) na coluna `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';
```

Para reconstruir o SQL armazenado em STL\_UTILITYTEXT, execute o seguinte SQL. 

```
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();
```

Para usar o SQL reconstruído resultante em seu cliente, substitua os caracteres especiais por uma nova linha (`\n`). 

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