SET JALUR

Berlaku untuk:tanda centang ya Databricks SQL ditandai ya Databricks Runtime 19 ke atas

Path adalah daftar berurutan skema yang dicari Azure Databricks ketika sebuah query atau pernyataan DML merujuk pada tabel, tampilan, atau fungsi tanpa katalog dan kualifikasi skema. Subjek yang tidak memenuhi syarat dari pernyataan DDL adalah current_catalog.current_schema, bukan path lookup, sehingga CREATE TABLE t dibuat t di skema saat ini. Untuk bagaimana jalur ini diterapkan pada kueri dalam pernyataan DDL dan pada tampilan persisten, lihat Tabel dan resolusi tampilan. Untuk badan rutin, lihat Resolusi fungsi dan prosedur.

Syntax

SET PATH = path_element [, ...]

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

Parameters

  • DEFAULT_PATH

    Kata kunci yang diperluas ke parameter konfigurasi PATH , yaitu default workspace yang diwarisi sesi baru. Jika parameter belum ditimpa, ekspansi adalah system.session, system.builtin, system.ai, CURRENT_SCHEMA.

  • SYSTEM_PATH

    Kata kunci yang diperluas ke skema yang disediakan sistem: system.builtin, system.ai.

  • CURRENT_SCHEMA

    Referensi skema virtual yang diselesaikan pada waktu penggunaan ke katalog saat ini dan skema saat ini (current_catalog().current_schema()). Perluasan ini mengikuti perubahan yang dilakukan oleh dan USE CATALOGUSE SCHEMA selama sesi.

  • JALAN

    Kata kunci yang dapat diperluas ke jalur sesi saat ini. Gunakan untuk memperpanjang jalur tanpa mengulang isinya.

  • schema_name

    Nama dua bagian (catalog.schema) diperlukan. Nama dengan lebih dari dua bagian diperbolehkan. Nama satu bagian mengangkat INVALID_SQL_PATH_SCHEMA_REFERENCE.

    Katalog dan skema tidak perlu ada pada saat Anda menjalankan SET PATH. Resolusi nama melewati entri yang hilang dan melanjutkan dengan elemen jalur berikutnya.

Deskripsi

Aturan berikut mengatur elemen SET PATH jalur mana yang diterima dan bagaimana jalur yang dihasilkan memengaruhi penyelesaian nama.

  • Duplikat: Elemen jalur duplikat tidak diperbolehkan. Setelah ekspansi kata kunci, duplikat akan menaikkan DUPLICATE_SQL_PATH_ENTRY.
  • Skema sistem: system.builtin dan system.ai menyimpan fungsi skalar, tabel, dan AI bawaan. system.session Menyimpan objek dengan cakupan sesi seperti variabel sementara, fungsi sementara, dan tampilan sementara. Keluar system.builtin dari jalur umumnya tidak disarankan.
  • Skema yang dihilangkan: Nama tanpa kualifikasi hanya dapat diselesaikan terhadap skema pada jalur. Jika Anda menghilangkan CURRENT_SCHEMA, mengkualifikasi objek persisten dalam skema saat ini. Jika Anda menghilangkan system.builtin atau system.ai, mengkualifikasi fungsi-fungsi tersebut, misalnya system.builtin.abs. Jika Anda menghilangkan system.session, tampilan sementara tanpa kualifikasi, fungsi sementara, dan variabel sesi tidak ditemukan.
  • Tampilan dan rutin: Tampilan persisten, fungsi yang didefinisikan pengguna SQL, dan SQL SECURITY DEFINER prosedur menangkap jalur di CREATE dan menyelesaikan nama tanpa kualifikasi dalam tubuhnya terhadap jalur yang ditangkap, bukan jalur sesi pemanggil. Sebuah SQL SECURITY DEFINER prosedur tidak termasuk system.session dalam jalur yang ditangkap. Prosedur menggunakan SQL SECURITY INVOKER jalur langsung penelepon. Lihat Jalur Tertangkap.
  • Memeriksa jalur: SET PATH; tidak mencetak jalur. Gunakan current_path.

Examples

Jalankan pernyataan berikut secara berurutan, karena pernyataan selanjutnya membangun jalur yang telah ditetapkan oleh pernyataan sebelumnya.

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

Pernyataan berikut gagal dan tidak mengubah jalur.

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