

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Variabili di Amazon Redshift RSQL
<a name="rsql-query-tool-variables"></a>

 Alcune parole chiave funzionano come variabili in RSQL. È possibile configurare ciascuna parola chiave su un valore specifico o reimpostare il valore. La maggior parte delle parole chiave è impostata con `\rset`, che ha una modalità interattiva e una modalità batch. I comandi possono essere definiti in minuscolo o in maiuscolo.

## ACTIVITYCOUNT
<a name="rsql-query-tool-activitycount"></a>

 Indica il numero di righe interessate dall'ultima richiesta inviata. Per una richiesta di restituzione dei dati, si tratta del numero di righe restituite a RSQL dal database. Il valore deve essere 0 o un numero intero positivo. Il valore massimo è 18.446.744.073.709.551.615. 

 La variabile appositamente trattata `ACTIVITYCOUNT` è analoga alla variabile `ROW_COUNT`. Tuttavia, `ROW_COUNT` non riporta all'applicazione client un conteggio delle righe interessate al completamento dei comandi per `SELECT`, `COPY` o `UNLOAD`. Lo fa invece `ACTIVITYCOUNT`. 

activitycount\_01.sql:

```
select viewname, schemaname
from pg_views
where schemaname = 'not_existing_schema';
\if :ACTIVITYCOUNT = 0
\remark 'views do not exist'
\endif
```

Output della console:

```
viewname | schemaname
----------+------------
(0 rows)

views do not exist
```

## ERRORLEVEL
<a name="rsql-query-tool-describe-rset-errorlevel"></a>

Assegna i livelli di gravità agli errori. Utilizzare i livelli di gravità per determinare una linea d'azione. Se il comando `ERRORLEVEL` non è stato usato, per impostazione predefinita il suo valore sarà `ON`.

errorlevel\_01.sql:

```
\rset errorlevel 42P01 severity 0

select * from tbl;

select 1 as col;

\echo exit
\quit
```

Output della console:

```
Errorlevel is on.
rsql: ERROR: relation "tbl" does not exist
(1 row)

col
1

exit
```

## HEADING e RTITLE
<a name="rsql-query-tool-describe-rset-heading-rtitle"></a>

Consente agli utenti di specificare un'intestazione visualizzata nella parte superiore di un report. L'intestazione specificata dal comando `RSET RTITLE` include automaticamente la data di sistema corrente del computer client.

Contenuto di rset\_heading\_rtitle\_02.rsql:

```
\remark Starting...
\rset rtitle "Marketing Department||Confidential//Third Quarter//Chicago"
\rset width 70
\rset rformat on
select * from rsql_test.tbl_currency order by id limit 2;
\exit
\remark Finishing...
```

Output della console:

```
Starting...
Rtitle is set to: &DATE||Marketing Department||Confidential//Third Quarter//Chicago (Changes will take effect after RFORMAT is
switched ON)
Target width is 70.
Rformat is on.
09/11/20       Marketing       Department Confidential
                  Third Quarter
                     Chicago
id  | bankid  | name |      start_date
100 |       1 | USD | 2020-09-11 10:51:39.106905
110 |       1 | EUR | 2020-09-11 10:51:39.106905
(2 rows)

Press any key to continue . . .
```

## MAXERROR
<a name="rsql-query-tool-describe-rset-maxerror"></a>

Indica un livello massimo di gravità degli errori oltre il quale RSQL termina l'elaborazione dei processi. I codici restituiti sono valori interi che RSQL restituisce al sistema operativo client dopo aver completato ogni processo o attività. Il valore del codice restituito indica lo stato di completamento del processo o dell'attività. Se uno script contiene un'istruzione che produce un livello di gravità dell'errore maggiore del valore `maxerror` designato, RSQL termina immediatamente. Pertanto, per terminare RSQL su un livello di gravità degli errori pari a 8, utilizzare `RSET MAXERROR 7`.

Contenuto di maxerror\_01.sql:

```
\rset maxerror 0
                        
select 1 as col;

\quit
```

Output della console:

```
Maxerror is default.
(1 row)

col
1
```

## RFORMAT
<a name="rsql-query-tool-describe-rset-heading-rformat"></a>

Consente agli utenti di specificare se applicare le impostazioni per i comandi di formattazione.

Contenuto di rset\_rformat.rsql:

```
\remark Starting...
\pset border 2
\pset format wrapped
\pset expanded on
\pset title 'Great Title'
select * from rsql_test.tbl_long where id = 500;
\rset rformat
select * from rsql_test.tbl_long where id = 500;
\rset rformat off
select * from rsql_test.tbl_long where id = 500;
\rset rformat on
select * from rsql_test.tbl_long where id = 500;
\exit
\remark Finishing...
```

Output della console:

```
Starting...
Border style is 2. (Changes will take effect after RFORMAT is switched ON)
Output format is wrapped. (Changes will take effect after RFORMAT is switched ON)
Expanded display is on. (Changes will take effect after RFORMAT is switched ON)
Title is "Great Title". (Changes will take effect after RFORMAT is switched ON)
id  |                                                             long_string
500 | In general, the higher the number the more borders and lines the tables will have, but details depend on the particular
format.
(1 row)

Rformat is on.
Great Title
+-[ RECORD 1 ]+----------------------------------------------------------------------------------------------------------------------
-----------+
| id           | 500
|
| long_string | In general, the higher the number the more borders and lines the tables will have, but details depend on the
particular format. |
+-------------+----------------------------------------------------------------------------------------------------------------------
-----------+

Rformat is off.
id  |                                                             long_string
500 | In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format.
(1 row)

Rformat is on.
Great Title
+-[ RECORD 1 ]+----------------------------------------------------------------------------------------------------------------------
-----------+
| id           | 500
|
| long_string | In general, the higher the number the more borders and lines the tables will have, but details depend on the
particular format. |
+-------------+----------------------------------------------------------------------------------------------------------------------
-----------+
Press any key to continue . . .
```

## ROW\_COUNT
<a name="rsql-query-tool-describe-rset-row_count"></a>

Ottiene il numero di record interessati dalla query precedente. In genere viene utilizzato per controllare un risultato, come nel seguente frammento di codice:

```
SET result = ROW_COUNT;

IF result = 0
...
```

## TITLEDASHES
<a name="rsql-query-tool-describe-rset-heading-titledashes"></a>

Questo controllo consente agli utenti di specificare se una riga di caratteri trattino deve essere stampata sopra i dati della colonna restituiti per le istruzioni SQL.

Esempio:

```
\rset titledashes on
select dept_no, emp_no, salary from rsql_test.EMPLOYEE
where dept_no = 100;
\rset titledashes off
select dept_no, emp_no, salary from rsql_test.EMPLOYEE
where dept_no = 100;
```

Output della console:

```
dept_no      emp_no          salary
----------- ----------- --------------------
100         1000346        1300.00
100         1000245        5000.00
100         1000262        2450.00

dept_no     emp_no         salary
100         1000346        1300.00
100         1000245        5000.00
100         1000262        2450.00
```

## WIDTH
<a name="rsql-query-tool-describe-rset-heading-width"></a>

Imposta il formato di output su wrapping e specifica la larghezza di destinazione per ogni riga di un report. Senza un parametro, restituisce le impostazioni correnti sia per il formato che per la larghezza di destinazione.

Contenuto di rset\_width\_01.rsql:

```
\echo Starting...
\rset width
\rset width 50
\rset width
\quit
\echo Finishing...
```

Output della console:

```
Starting...
Target width is 75.
Target width is 50.
Target width is 50.
Press any key to continue . . .
```

Esempio con parametro:

```
\echo Starting...
\rset rformat on
\pset format wrapped
select * from rsql_test.tbl_long where id = 500;
\rset width 50
select * from rsql_test.tbl_long where id = 500;
\quit
\echo Finishing...
```

Output della console:

```
Starting...
Rformat is on.
Output format is wrapped.
id  |                                          long_string
500 | In general, the higher the number the more borders and lines the ta.
    |.bles will have, but details depend on the particular format.
(1 row)

Target width is 50.
id  |                                          long_string
500 | In general, the higher the number the more.
    |. borders and lines the tables will have, b.
    |.ut details depend on the particular format.
    |..
(1 row)
Press any key to continue . . .
```