Riferimento alle variabili di sistema
BigQuery supporta le seguenti variabili di sistema per query con più istruzioni o all'interno di sessioni. Puoi utilizzare le variabili di sistema per impostare o recuperare informazioni durante l'esecuzione della query, in modo simile alle variabili del linguaggio procedurale definite dall'utente.
Nome | Tipo | Lettura e scrittura o di sola lettura | Descrizione |
---|---|---|---|
@@current_job_id |
STRING |
Sola lettura | ID del job in esecuzione. Nel contesto di una query con più istruzioni, restituisce il job responsabile dell'istruzione corrente, non dell'intera query con più istruzioni. |
@@dataset_id |
STRING |
Lettura e scrittura |
ID del set di dati predefinito nel progetto corrente. Questo ID viene utilizzato quando un
set di dati non è specificato per un progetto nella query. Puoi utilizzare l'istruzione
SET per assegnare @@dataset_id a
un altro ID set di dati nel progetto corrente. Le variabili di sistema
@@dataset_project_id e @@dataset_id possono essere
impostate e utilizzate insieme.
|
@@dataset_project_id |
STRING |
Lettura e scrittura |
ID del progetto predefinito utilizzato quando non ne viene specificato uno per un
set di dati utilizzato nella query. Se @@dataset_project_id non è impostato o se è impostato su NULL , viene utilizzato il progetto che esegue la query (@@project_id ). Puoi utilizzare l'istruzione SET
per assegnare @@dataset_project_id a un altro
progetto ID. Le variabili di sistema @@dataset_project_id e
@@dataset_id possono essere impostate e utilizzate insieme.
|
@@last_job_id |
STRING |
Sola lettura |
ID del job più recente da eseguire nella query con più istruzioni corrente, esclusa quella corrente. Se la
query con più istruzioni contiene istruzioni CALL ,
questo job potrebbe aver avuto origine in una procedura diversa.
|
@@project_id |
STRING |
Sola lettura |
ID del progetto utilizzato per eseguire la query corrente. Nel
contesto di una procedura, @@project_id fa riferimento al progetto
che esegue la query con più istruzioni, non al progetto proprietario della procedura.
|
@@query_label |
STRING |
Lettura e scrittura |
Etichetta della query da associare ai job di query nella query o nella sessione con più istruzioni corrente. Se impostato in una query, tutti i job di query successivi nello script o nella sessione avranno questa etichetta.
Se non viene impostato in una query, il valore di questa variabile di sistema è
NULL . Per un esempio di come impostare questa variabile di sistema, consulta
Associare i job in una sessione a un'etichetta.
|
@@row_count |
INT64 |
Sola lettura |
Se utilizzato in una query con più istruzioni e l'istruzione precedente è DML, specifica il numero di righe modificate, inserite o eliminate in seguito a quell'istruzione DML. Se l'istruzione precedente è
un'istruzione MERGE, @@row_count rappresenta il numero totale
combinato di righe inserite, rimosse ed eliminate. Questo valore è
NULL se non si trova in una query con più istruzioni.
|
@@script.bytes_billed |
INT64 |
Sola lettura |
Byte totali fatturati finora nel job di query con più istruzioni in esecuzione. Questo valore è NULL
se non è presente nel job.
|
@@script.bytes_processed |
INT64 |
Sola lettura |
Byte totali elaborati finora nel job di query con più istruzioni in esecuzione. Questo valore è NULL
se non è presente nel job.
|
@@script.creation_time |
TIMESTAMP |
Sola lettura |
Ora di creazione del job di query con più istruzioni attualmente in esecuzione.
Questo valore è NULL se non è presente nel job.
|
@@script.job_id |
STRING |
Sola lettura |
ID del job di query con più istruzioni attualmente in esecuzione. Questo valore è
NULL se non è presente nel job.
|
@@script.num_child_jobs |
INT64 |
Sola lettura |
Numero di job secondari attualmente completati. Questo valore è
NULL se non è presente nel job.
|
@@script.slot_ms |
INT64 |
Sola lettura |
Numero di millisecondi dello slot utilizzati finora dallo script.
Questo valore è NULL se non è presente nel job.
|
@@session_id |
INT64 |
Sola lettura | ID della sessione a cui è associata la query corrente. |
@@time_zone |
STRING |
Lettura e scrittura |
Il fuso orario predefinito da utilizzare nelle funzioni SQL dipendenti dal fuso orario,
quando un fuso orario non è specificato come argomento.
@@time_zone può essere modificato
utilizzando un'istruzione SET per qualsiasi nome di fuso orario valido.
All'inizio di ogni script, @@time_zone inizia come
"UTC".
|
Per la compatibilità con le versioni precedenti, le espressioni utilizzate in una clausola OPTIONS
o
FOR SYSTEM TIME AS OF
hanno come impostazione predefinita il fuso orario America/Los_Angeles
, mentre tutte le altre espressioni di data/ora hanno come impostazione predefinita il fuso orario UTC
. Se
@@time_zone
è stato impostato in precedenza nella query con più istruzioni, il fuso orario scelto verrà applicato a tutte le espressioni di data/ora, incluse le clausole OPTIONS
e
FOR SYSTEM TIME AS OF
.
Oltre alle variabili di sistema mostrate sopra, puoi utilizzare le variabili di sistema EXCEPTION
durante l'esecuzione di una query con più istruzioni. Per ulteriori informazioni sulle variabili di sistema EXCEPTION
, consulta l'istruzione del linguaggio procedurale BEGIN...EXCEPTION.
Per esempi su come utilizzare le variabili di sistema nelle query con più istruzioni, consulta Impostare una variabile.
Per esempi su come utilizzare le variabili di sistema nelle sessioni, consulta Sessione di esempio.