Начало работы
Подключение
Тесты производительности
Развёртывание
Использование данных
Загрузка данных
Миграция данных
Запрос данных
Управление кластерами
Обновление
Глобальное обслуживание
Масштабирование
Мониторинг
Безопасность
Лучшие практики
Технические принципы
Типы данных
Хранилище
Исполняющий движок
Потоковая обработка (Domino)
MARS3 Индексы
Расширения
Расширенные функции
Расширенный запрос
Федеративные запросы
Grafana
Резервное копирование и восстановление
Аварийное восстановление
Графовая база данных
Введение
Предложения
Функции
Расширенные темы
Руководство
Настройка производительности
Устранение неполадок
Инструменты
Параметры конфигурации
SQL-команда
Часто задаваемые вопросы
Внутри подготовленных операторов Cypher может выполнять только запросы на чтение. При использовании параметров в хранимых процедурах SQL-параметр должен передаваться в вызов функции Cypher. Подробнее см. раздел Формат запросов Cypher.
Параметр Cypher имеет вид $, за которым следует идентификатор. В отличие от параметров PostgreSQL, параметры Cypher должны начинаться с буквы и могут быть дополнены любой буквенно-цифровой строкой.
Пример: $parameter_name
Подготовка оператора Cypher является расширением системы хранимых процедур PostgreSQL. Для определения запроса, содержащего вызов функции Cypher, используйте команду PREPARE. Не используйте внутри строки запроса Cypher позиционные параметры PostgreSQL (например, $1). Вместо этого применяйте параметры Cypher (например, $name) в самом запросе Cypher, а соответствующий SQL-параметр передавайте третьим аргументом в функцию cypher().
PREPARE cypher_stored_procedure(agtype) AS
SELECT *
FROM cypher('expr', $$
MATCH (v:Person)
WHERE v.name = $name // Параметр Cypher
RETURN v
$$, $1) // SQL-параметр должен передаваться как третий аргумент функции cypher()
AS (v agtype);
При выполнении подготовленного оператора укажите в качестве значения SQL-параметра agtype-карту с необходимыми значениями параметров — именно на том месте, где в вызове cypher() ожидается SQL-параметр. Значение должно быть корректной agtype-картой; в противном случае будет вызвана ошибка. Имена параметров в карте указываются без ведущего символа $.
EXECUTE cypher_stored_procedure('{"name": "Tobias"}');