Categorias:

Funções do sistema (Informação)

SYSTEM$REFERENCE

Retorna uma referência a um objeto (uma tabela, exibição ou função). Quando você executa ações de SQL em uma referência a um objeto, as ações são executadas usando a função do usuário que criou a referência.

Consulte também:

SYSTEM$QUERY_REFERENCE

Sintaxe

SYSTEM$REFERENCE('<object_type>', '<object_identifier>',
  [ , <reference_scope> [ , '<privilege>' [ , '<privilege>' ... ] ] ] )
Copy

Argumentos

Obrigatório

object_type

Tipo do objeto. Especifique um dos seguintes valores:

  • api_integration

  • database

  • external_table

  • function

  • materialized_view

  • pipe

  • procedure

  • schema

  • table

  • task

  • view

  • warehouse

object_identifier

Identificador do objeto. Se o identificador contiver espaços ou caracteres especiais, toda a cadeia de caracteres deverá ser delimitada por aspas duplas. Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

Para obter mais detalhes sobre os identificadores de, consulte Requisitos para identificadores.

Opcional

reference_scope

Especifica o escopo da referência.

Se for CALL ou omitido, especifica que a referência é válida dentro do contexto em que foi criada. Consulte Especificação do escopo da referência.

Se SESSION, especifica que a referência deve ser válida durante a sessão.

Se PERSISTENT, especifica que a referência deve ser válida até que o objeto seja descartado. Consulte referências persistentes.

Nota: se você precisar especificar o argumento privilege, o argumento reference_scope será necessário.

Valores válidos:

  • CALL

  • SESSION

  • PERSISTENT

Valor padrão: CALL

privilege

Privilégio adicional necessário para realizar uma ação de SQL no objeto.

Por exemplo, suponha que você esteja passando a referência de uma tabela para um procedimento armazenado que insere linhas nessa tabela. Especifique 'INSERT' para conferir o privilégio INSERT nessa tabela para o procedimento armazenado.

Para obter uma lista de objetos e privilégios compatíveis, consulte Supported object types and privileges for references.

Para especificar mais de um privilégio adicional, passe cada nome de privilégio como um argumento adicional para a função. Por exemplo, para conferir os privilégios INSERT, UPDATE e TRUNCATE:

CALL myprocedure( SYSTEM$REFERENCE('TABLE', 'table_with_different_owner', 'SESSION', 'INSERT'. 'UPDATE', 'TRUNCATE'));
Copy

Note que você não pode especificar OWNERSHIP ou ALL como privilégios.

Retornos

Uma representação de cadeia de caracteres serializada da referência que pode ser usada como um identificador.

Exemplos

Consulte Um exemplo simples.