Referência de variáveis do sistema
O BigQuery é compatível com as variáveis de sistema a seguir para consultas de várias instruções ou em sessões. É possível usar variáveis do sistema para definir ou recuperar informações durante a execução da consulta, de maneira semelhante às variáveis de linguagem processuais definidas pelo usuário.
Nome | Tipo | Leitura e gravação ou somente leitura | Descrição |
---|---|---|---|
@@current_job_id |
STRING |
Somente leitura | ID do job em execução no momento. No contexto de uma consulta de várias instruções, isso retorna o job responsável pela instrução atual, e não a consulta inteira. |
@@dataset_id |
STRING |
Leitura e gravação |
ID do conjunto de dados padrão no projeto atual. Esse ID é usado quando um conjunto de dados não é especificado para um projeto na consulta. Use a instrução SET para atribuir @@dataset_id a outro ID de conjunto de dados no projeto atual. As variáveis de sistema @@dataset_project_id e @@dataset_id podem ser definidas e usadas em conjunto.
|
@@dataset_project_id |
STRING |
Leitura e gravação |
O ID do projeto padrão usado quando não é especificado um para o conjunto de dados usado na consulta. Se @@dataset_project_id não estiver definido ou se estiver definido como NULL , o projeto de execução de consulta (@@project_id ) será usado. Use a instrução SET para atribuir @@dataset_project_id a outro ID do projeto. As variáveis de sistema @@dataset_project_id e @@dataset_id podem ser definidas e usadas em conjunto.
|
@@last_job_id |
STRING |
Somente leitura |
O ID do job mais recente a ser executado na consulta atual
de várias instruções, exceto o atual. Se a
consulta de várias instruções contiver instruções CALL ,
esse job pode ter vindo de um procedimento diferente.
|
@@project_id |
STRING |
Somente leitura |
ID do projeto usado para executar a consulta atual. No
contexto de um procedimento, @@project_id se refere ao projeto
que está executando a consulta de várias instruções, e não ao projeto proprietário do procedimento.
|
@@query_label |
STRING |
Leitura e gravação |
Rótulo de consulta a ser associado a jobs de consulta na sessão ou consulta
de várias instruções atual. Se definido em uma consulta, todos os jobs de consulta subsequentes no script ou na sessão terão esse rótulo.
Se não for definido em uma consulta, o valor desta variável do sistema será
NULL . Para ver um exemplo de como definir essa variável do sistema, consulte
Associar jobs em uma sessão a um rótulo.
|
@@row_count |
INT64 |
Somente leitura |
Se usado em uma consulta de várias instruções e a instrução
anterior for DML, especifica o número de linhas alteradas, inseridas ou
excluídas, como resultados dessa instrução DML. Se a instrução anterior for
MERGE, @@row_count vai representar o número
total combinado de linhas inseridas, removidas e excluídas. Esse valor será
NULL se não estiver em uma consulta de várias instruções.
|
@@script.bytes_billed |
INT64 |
Somente leitura |
Total de bytes faturados até o momento no job de consulta de várias instruções em execução no momento. Esse valor será NULL
se não estiver no job.
|
@@script.bytes_processed |
INT64 |
Somente leitura |
Total de bytes processados até o momento no job de consulta de várias instruções
em execução no momento. Esse valor será NULL
se não estiver no job.
|
@@script.creation_time |
TIMESTAMP |
Somente leitura |
Hora da criação do job de consulta de várias instruções
em execução no momento.
Esse valor será NULL se não estiver no job.
|
@@script.job_id |
STRING |
Somente leitura |
ID do job de consulta de várias instruções
em execução no momento. Esse valor será
NULL se não estiver no job.
|
@@script.num_child_jobs |
INT64 |
Somente leitura |
Número de jobs filhos concluídos no momento. Esse valor será
NULL se não estiver no job.
|
@@script.slot_ms |
INT64 |
Somente leitura |
Número de milissegundos de slot usados até o momento pelo script.
Esse valor será NULL se não estiver no job.
|
@@session_id |
INT64 |
Somente leitura | ID da sessão a que a consulta atual está associada. |
@@time_zone |
STRING |
Leitura e gravação |
O fuso horário padrão a ser usado em funções SQL dependentes de fuso horário, quando um fuso horário explícito não é especificado como um argumento.
@@time_zone pode ser modificado usando uma instrução SET para qualquer nome de fuso horário válido.
No início de cada script, @@time_zone começa como
"UTC".
|
Para oferecer compatibilidade com versões anteriores, as expressões usadas em uma cláusula OPTIONS
ou FOR SYSTEM TIME AS OF
são padronizadas com o fuso horário America/Los_Angeles
, enquanto todas as outras expressões de data e hora usam o fuso horário UTC
. Se @@time_zone
tiver sido definido na consulta de várias instruções, o fuso horário escolhido
será aplicado a todas as expressões de data e hora, incluindo as cláusulas OPTIONS
e
FOR SYSTEM TIME AS OF
.
Além das variáveis de sistema mostradas acima, é possível usar variáveis de sistema
EXCEPTION
durante a execução de uma consulta de várias instruções. Saiba mais sobre as
variáveis de sistema EXCEPTION
na instrução de linguagem processual
BEGIN...EXCEPTION.
Para ver exemplos de como usar as variáveis do sistema em consultas de várias instruções, consulte Definir uma variável.
Para ver exemplos de como usar as variáveis do sistema em sessões, consulte Exemplo de sessão.