SET YOL

Geçerlidir:işaretli evet, Databricks SQL işaretli evet, Databricks Runtime 19 ve üzeri

Yol, bir sorgu veya DML ifadesi katalog ve şema niyetleticisi olmadan bir tabloya, görünüme veya fonksiyona referans verdiğinde Azure Databricks'in aradığı şemaların sıralı listesidir. DDL ifadesinin current_catalog.current_schemaniteliksiz öznesi, bir yol araması değildir, yani CREATE TABLE t mevcut şemada oluşturulur t . Yolun DDL ifadelerindeki sorgulara ve kalıcı görünümlere nasıl uygulandığını bilmek için Tablo ve görünüm çözümüne bakınız. Rutin bedenler için bkz. Fonksiyon ve prosedür çözümlemesi.

Syntax

SET PATH = path_element [, ...]

path_element
  { DEFAULT_PATH |
    SYSTEM_PATH |
    CURRENT_SCHEMA |
    PATH |
    schema_name }

Parameters

  • DEFAULT_PATH

    Yeni oturumların devraldığı çalışma alanı varsayılan olan PATH yapılandırma parametrine genişleyen bir anahtar kelime. Parametre geçersiz küçülmemişse, genişleme şudur.system.session, system.builtin, system.ai, CURRENT_SCHEMA

  • SYSTEM_PATH

    Sistem tarafından sağlanan şemalara genişleyen bir anahtar kelime: system.builtin, system.ai.

  • CURRENT_SCHEMA

    Mevcut katalog ve mevcut şema (current_catalog().current_schema()) için kullanım zamanı çözüm veren sanal şema referansıdır. Bu genişleme oturum sırasında ve USE SCHEMA oturum sırasında yapılan değişiklikleri USE CATALOG takip ediyor.

  • YOL

    Mevcut oturum yoluna genişleyen bir anahtar kelime. Yolu içeriğini yeniden değiştirmeden uzatmak için kullanın.

  • schema_name

    İki bölümden oluşan bir isim (catalog.schema) gereklidir. İki bölümden fazla isimlere izin verilir. Tek parçalı bir isim INVALID_SQL_PATH_SCHEMA_REFERENCE oluşturur.

    Katalog ve şema, çalıştırdığınız SET PATHanda var olmak zorunda değildir. İsim çözümü eksik girişleri atlar ve bir sonraki yol öğesi ile devam eder.

Description

Aşağıdaki kurallar, hangi yol öğelerinin SET PATH kabul edileceğini ve ortaya çıkan yolun isim çözümlemesini nasıl etkilediğini belirler.

  • Tekrarlar: Çoğaltılmış yol öğelerine izin verilmez. Anahtar kelime genişletildikten sonra, tekrarlar DUPLICATE_SQL_PATH_ENTRY artırır.
  • Sistem şemaları: system.builtin ve system.ai yerleşik skalar, tablo ve yapay zeka fonksiyonlarını içerir. system.session geçici değişkenler, geçici fonksiyonlar ve geçici görünümler gibi oturum kapsamlı nesneleri tutar. Yoldan ayrılmak system.builtin genellikle tavsiye edilmez.
  • Atılmış şemalar: Niteliksiz isimler yalnızca yol üzerindeki şemalara karşı çözüm bulur. Eğer atlarsanız CURRENT_SCHEMA, mevcut şemada kalıcı nesneleri nitelendirmek gerekir. Eğer veya system.ai, bu fonksiyonları atlarsanızsystem.builtin, örneğin system.builtin.abs. Eğer atlarsanız system.session, niteliksiz geçici görünümler, geçici fonksiyonlar ve oturum değişkenleri bulunmaz.
  • Görünümler ve rutinler: Kalıcı görünümler, SQL kullanıcı tanımlı fonksiyonlar ve SQL SECURITY DEFINER prosedürler, yolu yakalar CREATE ve kendi bedenlerindeki niteliksiz isimleri çağrılanın oturum yoluna değil, o ele alınan yola karşı çözer. Bir SQL SECURITY DEFINER prosedür ele geçirilen yoldan çıkarılıyor system.session . Bir SQL SECURITY INVOKER prosedür, arayan kişinin canlı yolunu kullanır. Bkz. Ele Çekilen Yol.
  • Yolu incelemek: SET PATH; yolu yazdırmaz. current_path kullanın.

Examples

Aşağıdaki ifadeleri sırayla çalıştırın, çünkü sonraki ifadeler önceki ifadelerin belirlediği yol üzerine inşa edilir.

-- 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

Aşağıdaki ifadeler başarısız olur ve yolu değiştirmez.

-- 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]