Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:
Databricks SQL
Runtime 19 e superiori
Il percorso è l'elenco ordinato degli schemi che Azure Databricks cerca quando una query o un'istruzione DML fa riferimento a una tabella, una vista o una funzione senza catalogo e qualificatore di schema. L'oggetto non qualificato di un'istruzione DDL è current_catalog.current_schema, non una ricerca di cammino, quindi CREATE TABLE t si crea t nello schema corrente. Per come il percorso si applica alle query nelle istruzioni DDL e alle viste persistenti, vedi Risoluzione Tabella e vista. Per gli organismi di routine, vedi Risoluzione di funzioni e procedure.
Syntax
SET PATH = path_element [, ...]
path_element
{ DEFAULT_PATH |
SYSTEM_PATH |
CURRENT_SCHEMA |
PATH |
schema_name }
Parameters
DEFAULT_PATH
Una parola chiave che si espande fino al parametro di configurazione PATH , che è il valore predefinito dello spazio di lavoro che le nuove sessioni ereditano. Se il parametro non è stato sovrascritto, l'espansione è
system.session, system.builtin, system.ai, CURRENT_SCHEMA.SYSTEM_PATH
Una parola chiave che si estende agli schemi forniti dal sistema:
system.builtin, system.ai.CURRENT_SCHEMA
Un riferimento virtuale allo schema che si risolve al momento dell'uso nel catalogo corrente e nello schema corrente (
current_catalog().current_schema()). L'espansione segue i cambiamenti apportati durante USE CATALOGUSE SCHEMA e durante la sessione.PATH
Una parola chiave che si estende al percorso della sessione corrente. Usalo per estendere il percorso senza ripeterne il contenuto.
-
È richiesto un nome in due parti (
catalog.schema). Sono ammessi nomi con più di due parti. Un nome composto da una singola parte solleva INVALID_SQL_PATH_SCHEMA_REFERENCE.Il catalogo e lo schema non devono necessariamente esistere al momento dell'esecuzione
SET PATH. La risoluzione dei nomi salta le voci mancanti e prosegue con l'elemento successivo del percorso.
Description
Le seguenti regole determinano quali elementi SET PATH di percorso accettano e come il percorso risultante influenza la risoluzione dei nomi.
- Duplicati: Non sono ammessi elementi di percorso duplicati. Dopo l'espansione delle parole chiave, i duplicati aumentano DUPLICATE_SQL_PATH_ENTRY.
-
Schemi di sistema:
system.builtinesystem.aicontengono funzioni scalari, tabelle e AI integrate.system.sessioncontiene oggetti con ambito sessione come variabili temporanee, funzioni temporanee e viste temporanee. Lasciaresystem.builtinfuori dal percorso generalmente non è consigliato. -
Schemi omessi: I nomi non qualificati risolvono solo contro gli schemi sul percorso. Se ometti
CURRENT_SCHEMA, qualifica gli oggetti persistenti nello schema corrente. Se omettisystem.builtinosystem.ai, qualifichi queste funzioni, adsystem.builtin.absesempio . Se omettisystem.session, non si trovano le viste temporanee non qualificate, le funzioni temporanee e le variabili di sessione. -
Viste e routine: Viste persistenti, funzioni SQL definite dall'utente e
SQL SECURITY DEFINERprocedure catturano il percorso inCREATEe risolvono nomi non qualificati nei loro corpi rispetto a quel percorso catturato, non al percorso di sessione dell'invocatore. UnaSQL SECURITY DEFINERprocedura omettesystem.sessionil percorso catturato. UnaSQL SECURITY INVOKERprocedura utilizza il percorso live del chiamante. Vedi Percorso catturato. -
Ispezionare il percorso:
SET PATH;non stampa il percorso. Usa current_path.
Examples
Esegui le seguenti istruzioni in ordine, perché le istruzioni successive si basano sul percorso che quelle precedenti hanno stabilito.
-- 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
Le seguenti affermazioni falliscono e non cambiano il percorso.
-- 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]