Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:
Databricks
Databricks Runtime 19 och uppåt
Sökvägen är den ordnade listan av scheman som Azure Databricks söker i när en fråga eller DML-sats refererar till en tabell, vy eller funktion utan katalog- och schema-kvalificering. Det okvalificerade ämnet i en DDL-sats är current_catalog.current_schema, inte en väguppslagning, så CREATE TABLE t skapar t i det aktuella schemat. För hur vägen gäller för frågor i DDL-satser och för persistenta vyer, se Tabell och vyupplösning. För rutinmässiga kroppar, se Funktion och procedurupplösning.
Syntax
SET PATH = path_element [, ...]
path_element
{ DEFAULT_PATH |
SYSTEM_PATH |
CURRENT_SCHEMA |
PATH |
schema_name }
Parameters
DEFAULT_PATH
Ett nyckelord som expanderar till PATH-konfigurationsparametern, vilket är arbetsytans standard som nya sessioner ärver. Om parametern inte har överskrivits är expansionen
system.session, system.builtin, system.ai, CURRENT_SCHEMA.SYSTEM_PATH
Ett nyckelord som utvidgas till de systemtillhandahållna scheman:
system.builtin, system.ai.CURRENT_SCHEMA
En virtuell schemareferens som vid användning löses till den aktuella katalogen och nuvarande schemat (
current_catalog().current_schema()). Expansionen följer förändringar som görs under USE CATALOGUSE SCHEMA och under sessionen.VÄG
Ett nyckelord som expanderar till den aktuella sessionsvägen. Använd den för att förlänga stigen utan att behöva upprepa innehållet.
-
Ett tvådelat namn (
catalog.schema) krävs. Namn med mer än två delar är tillåtna. Ett namn med en enda del väcker INVALID_SQL_PATH_SCHEMA_REFERENCE.Katalogen och schemat behöver inte finnas vid tidpunkten för körningen
SET PATH. Namnupplösning hoppar över saknade poster och fortsätter med nästa väg-element.
Description
Följande regler styr vilka vägelement SET PATH som accepteras och hur den resulterande vägen påverkar namnupplösning.
- Dubbletter: Dubbletter av vägelement är inte tillåtna. Efter nyckelordsexpansion ökar dubbletter DUPLICATE_SQL_PATH_ENTRY.
-
Systemscheman:
system.builtinochsystem.aiinnehåller inbyggda skalär-, tabell- och AI-funktioner.system.sessioninnehåller sessionsbegränsade objekt såsom temporära variabler, temporära funktioner och temporära vyer. Det rekommenderas generellt inte att lämnasystem.builtinstigen. -
Utelämnade scheman: Okvalificerade namn löses endast mot scheman på vägen. Om du utelämnar
CURRENT_SCHEMA, kvalificerar persistenta objekt i det aktuella schemat. Om du utelämnarsystem.builtinellersystem.ai, kvalificerar dessa funktioner, till exempelsystem.builtin.abs. Om du utelämnarsystem.session, hittas inte okvalificerade tillfälliga vyer, temporära funktioner och sessionsvariabler. -
Vyer och rutiner: Persistenta vyer, SQL-användardefinierade funktioner och
SQL SECURITY DEFINERprocedurer fångar vägen vidCREATEoch löser okvalificerade namn i sina kroppar mot den fångade vägen, inte mot anroparens sessionsväg. EnSQL SECURITY DEFINERprocedur utelämnassystem.sessionfrån den erövrade vägen. EnSQL SECURITY INVOKERprocedur använder uppringarens live-väg. Se Fångad väg. -
Att inspektera vägen:
SET PATH;skriver inte ut banan. Använd current_path.
Examples
Kör följande satser i ordning, eftersom senare satser bygger på den väg som tidigare satser satt.
-- 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
Följande satser misslyckas och ändrar inte vägen.
-- 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]