SET PERCORSO

Si applica a:spunta sì Databricks SQL spuntato sì Databricks 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.

  • schema_name

    È 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.builtin e system.ai contengono funzioni scalari, tabelle e AI integrate. system.session contiene oggetti con ambito sessione come variabili temporanee, funzioni temporanee e viste temporanee. Lasciare system.builtin fuori 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 ometti system.builtin o system.ai, qualifichi queste funzioni, ad system.builtin.absesempio . Se ometti system.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 DEFINER procedure catturano il percorso in CREATE e risolvono nomi non qualificati nei loro corpi rispetto a quel percorso catturato, non al percorso di sessione dell'invocatore. Una SQL SECURITY DEFINER procedura omette system.session il percorso catturato. Una SQL SECURITY INVOKER procedura 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]