Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:
» Databricks SQL
» Databricks Runtime 19 и выше
Путь представляет собой упорядоченный список схем, которые Azure Databricks ищет, когда запрос или оператор DML ссылается на таблицу, представление или функцию без каталога и квалификатора схемы. Неквалифицированный субъект DDL-утверждения — это current_catalog.current_schema, а не поиск по пути, поэтому CREATE TABLE t создаётся t в текущей схеме. Для того, как этот путь применяется к запросам в операторах DDL и к постоянным представлениям, см. раздел Таблица и разрешение представлений. Для рутинных тел см. раздел Функция и разрешение процедур.
Syntax
SET PATH = path_element [, ...]
path_element
{ DEFAULT_PATH |
SYSTEM_PATH |
CURRENT_SCHEMA |
PATH |
schema_name }
Parameters
DEFAULT_PATH
Ключевое слово, расширяющееся до параметра конфигурации PATH — рабочего пространства по умолчанию, которое наследуют новые сессии. Если параметр не был переопределен, разложение равен
system.session, system.builtin, system.ai, CURRENT_SCHEMA.SYSTEM_PATH
Ключевое слово, расширяющееся на системные схемы:
system.builtin, system.ai.CURRENT_SCHEMA
Виртуальная ссылка на схему, которая разрешается в момент использования с текущим каталогом и текущей схемой (
current_catalog().current_schema()). Расширение последовало за изменениями, внесёнными USE CATALOG сессией и USE SCHEMA во время сессии.PATH
Ключевое слово, расширяющееся в текущий путь сессии. Используйте его, чтобы продлить путь, не повторяя его содержимое.
-
Требуется двухчастное название (
catalog.schema) (). Имена с более чем двумя частями разрешены. Однокомпонентное название вызывает INVALID_SQL_PATH_SCHEMA_REFERENCE.Каталог и схема не обязательно должны существовать в момент запуска
SET PATH. Разрешение имени пропускает недостающие записи и продолжается следующим элементом пути.
Description
Следующие правила определяют, какие элементы SET PATH пути принимаются и как полученный путь влияет на разрешение имён.
- Дубликаторы: дублирующиеся элементы пути не допускаются. После расширения ключевых слов дубликаты увеличивают DUPLICATE_SQL_PATH_ENTRY.
-
Системные схемы:
system.builtinиsystem.aiсодержат встроенные скалярные, настольные и AI-функции.system.sessionсодержит объекты с сессионным масштабом, такие как временные переменные, временные функции и временные представления. Обычно не рекомендуется обойтисьsystem.builtinс тропы. -
Опущенные схемы: Неквалифицированные имена решаются только против схем на пути. Если вы опускаете
CURRENT_SCHEMA, квалифицируйте постоянные объекты в текущей схеме. Если вы опуститеsystem.builtinилиsystem.aiуточните эти функции, напримерsystem.builtin.abs, . Если опускатьsystem.session, не найдётся неквалифицированные временные представления, временные функции и переменные сессии. -
Представления и процедуры: Постоянные представления, пользовательские функции SQL и
SQL SECURITY DEFINERпроцедуры захватывают путь иCREATEразрешают неквалифицированные имена в своих телах по этому захваченному пути, а не по пути сессии вызывающего. ПроцедураSQL SECURITY DEFINERопущенаsystem.sessionв захваченной траектории. ПроцедураSQL SECURITY INVOKERиспользует живой путь звонящего. См. Захваченный путь. -
Осмотр пути:
SET PATH;не печатает путь. Используйте current_path.
Examples
Выполните следующие операторы по порядку, потому что поздние операторы строятся на пути, который задали предыдущие.
-- 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 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]