Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL
Databricks Runtime 19 e superiores
O caminho é a lista ordenada de esquemas que o Azure Databricks pesquisa quando uma consulta ou instrução DML faz referência a uma tabela, vista ou função sem um catalogo e qualificador de esquema. O sujeito não qualificado de uma instrução DDL é current_catalog.current_schema, não uma pesquisa de caminho, por isso CREATE TABLE t cria-se t no esquema atual. Para saber como o caminho se aplica a consultas em instruções DDL e a vistas persistentes, veja Resolução de Tabela e vista. Para organismos rotineiros, veja Resolução de funções e procedimentos.
Syntax
SET PATH = path_element [, ...]
path_element
{ DEFAULT_PATH |
SYSTEM_PATH |
CURRENT_SCHEMA |
PATH |
schema_name }
Parameters
DEFAULT_PATH
Uma palavra-chave que se expande para o parâmetro de configuração PATH , que é o padrão do espaço de trabalho que as novas sessões herdam. Se o parâmetro não tiver sido sobreposto, a expansão é
system.session, system.builtin, system.ai, CURRENT_SCHEMA.SYSTEM_PATH
Uma palavra-chave que se expande para os esquemas fornecidos pelo sistema:
system.builtin, system.ai.CURRENT_SCHEMA
Uma referência virtual de esquema que se resolve no momento de uso para o catálogo atual e o esquema atual (
current_catalog().current_schema()). A expansão segue as alterações feitas durante USE CATALOGUSE SCHEMA e durante a sessão.CAMINHO
Uma palavra-chave que se expande para o caminho da sessão atual. Usa-o para prolongar o caminho sem repetir o seu conteúdo.
-
É necessário um nome em duas partes (
catalog.schema). Nomes com mais de duas partes são permitidos. Um nome de uma só parte levanta INVALID_SQL_PATH_SCHEMA_REFERENCE.O catálogo e o esquema não precisam de existir no momento em que executa
SET PATH. A resolução de nomes ignora entradas em falta e continua com o próximo elemento do caminho.
Description
As seguintes regras determinam quais elementos SET PATH de caminho aceitam e como o caminho resultante afeta a resolução de nomes.
- Duplicados: Não são permitidos elementos de caminho duplicados. Após a expansão das palavras-chave, os duplicados aumentam DUPLICATE_SQL_PATH_ENTRY.
-
Esquemas do sistema:
system.builtinesystem.aicontêm funções escalar, de tabela e de IA incorporadas.system.sessioncontém objetos com âmbito de sessão, como variáveis temporárias, funções temporárias e vistas temporárias. Sairsystem.builtindo caminho geralmente não é aconselhável. -
Esquemas omitidos: Nomes não qualificados resolvem-se apenas contra esquemas no caminho. Se omitir
CURRENT_SCHEMA, qualifica objetos persistentes no esquema atual. Se omitirsystem.builtinousystem.ai, qualificar essas funções, por exemplosystem.builtin.abs. Se omitirsystem.session, vistas temporárias não qualificadas, funções temporárias e variáveis de sessão não são encontradas. -
Vistas e rotinas: Vistas persistentes, funções SQL definidas pelo utilizador e
SQL SECURITY DEFINERprocedimentos capturam o caminho emCREATEe resolvem nomes não qualificados nos seus corpos contra esse caminho capturado, não contra o caminho da sessão do invocador. UmSQL SECURITY DEFINERprocedimento omitesystem.sessiono caminho capturado. UmSQL SECURITY INVOKERprocedimento utiliza o caminho em direto do interlocutor. Ver Caminho capturado. -
Inspecionar o caminho:
SET PATH;não imprime o caminho. Usa current_path.
Examples
Execute as instruções seguintes por ordem, porque as instruções posteriores baseiam-se no caminho definido pelas anteriores.
-- Restore the workspace default.
> SET PATH = DEFAULT_PATH;
> SELECT current_path();
system.session,system.builtin,system.ai,main.default
-- Restrict the PATH to only the system-provided schemas.
> SET PATH = SYSTEM_PATH;
> SELECT current_path();
system.builtin,system.ai
-- Append a schema to the existing PATH without restating it.
> SET PATH = PATH, libraries.pgsql;
> SELECT current_path();
system.builtin,system.ai,libraries.pgsql
-- Put the current schema ahead of the system schemas so that user-defined
-- functions shadow built-in functions of the same name.
> SET PATH = CURRENT_SCHEMA, PATH;
> SELECT current_path();
main.default,system.builtin,system.ai,libraries.pgsql
As seguintes afirmações falham e não alteram o caminho.
-- A single-part schema name is rejected.
> SET PATH = my_schema;
[INVALID_SQL_PATH_SCHEMA_REFERENCE]
-- A duplicate path element raises an error after expansion.
> SET PATH = SYSTEM_PATH, system.builtin;
[DUPLICATE_SQL_PATH_ENTRY]