Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks SQL
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.
-
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.builtindansystem.aimenyimpan fungsi skalar, tabel, dan AI bawaan.system.sessionMenyimpan objek dengan cakupan sesi seperti variabel sementara, fungsi sementara, dan tampilan sementara. Keluarsystem.builtindari 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 menghilangkansystem.builtinatausystem.ai, mengkualifikasi fungsi-fungsi tersebut, misalnyasystem.builtin.abs. Jika Anda menghilangkansystem.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 DEFINERprosedur menangkap jalur diCREATEdan menyelesaikan nama tanpa kualifikasi dalam tubuhnya terhadap jalur yang ditangkap, bukan jalur sesi pemanggil. SebuahSQL SECURITY DEFINERprosedur tidak termasuksystem.sessiondalam jalur yang ditangkap. Prosedur menggunakanSQL SECURITY INVOKERjalur 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]