Запитання з тегом «plpgsql»

PL / pgSQL є мовою процедур за замовчуванням для системи баз даних PostgreSQL. Питання щодо PL / pgSQL, ймовірно, також мають бути позначені "PostgreSQL".

1
Створіть виняток із контексту
Коли PostgreSQL видає виняток, є рядок "CONTEXT", наприклад: ERROR: INSERT has more target COLUMNS than expressions LINE 3: ... ^ QUERY: INSERT INTO ... CONTEXT: PL/pgSQL FUNCTION "XXXXX" line 4 at SQL statement Але коли я кидаю виняток, цього рядка немає. Я не знайшов, як це додати. RAISE EXCEPTION 'blablabla' …

3
Що станеться, якщо два процеси спробують ПОТРІБНО МАТЕРІАЛІЗОВАНИЙ ПОГЛЯД одночасно?
Згідно з документами: СУЧАСНО Оновіть матеріалізований вигляд, не вимикаючи паралельно вибрані в матеріалізованому поданні. (...) ... ІНШІ ЗМІСТ ... Навіть при такому варіанті лише один ПОВТОРЕННЯ одночасно може протистояти будь-якому матеріалізованому виду . У мене була функція, яка перевіряла час останнього оновлення на МАТЕРІАЛІЗОВАНИЙ ВИДІЛ, і якщо минуло б більше …

3
Набір витрат на процедурні мови PostgreSQL (plpython / plsql / pllua…)
Я намагаюся знайти інформацію про функції, визначені користувачем PostgreSQL, у виконанні процедурних мов для завдань у режимі реального часу. Як вони порівнюються з вбудованими функціями? Чи є різниця (накладні витрати) на те, як Postgres викликає / керує функціями plpython vs plpgsql vs pllua (мене цікавить інтеграція Postgres / контекст / …

2
Як отримати контекст винятку для піднятого вручну винятку в PL / pgSQL?
У Postgres ми отримуємо "стек стеження" винятків за допомогою цього коду: EXCEPTION WHEN others THEN GET STACKED DIAGNOSTICS v_error_stack = PG_EXCEPTION_CONTEXT; Це чудово працює для "природних" винятків, але якщо ми створимо виняток, використовуючи RAISE EXCEPTION 'This is an error!'; ... тоді сліду стека немає. Згідно запису списку розсилки , це …

1
Помилка: функція set_valued викликається в контексті, який не може прийняти набір. Про що це?
Я використовую Postgresql 9.1, з ubuntu 12.04. Натхненний відповідь Крейга на моє запитання конкатенацію setof типу або setof записи , я думав , я б добре з використанням return query, setof recordі генератор серії в цій функцію plpgsql: create or replace function compute_all_pair_by_craig(id_obj bigint) returns setof record as $$ begin …

2
Поверніть запис із функцією PL / pgSQL - для прискорення запиту
У мене в Perl написаний демон , що не розгортається, який використовує acync запити для запису статистики гравців у базу даних PostgreSQL 9.3. Але коли мені потрібно прочитати щось із бази даних (наприклад, якщо гравця заборонено або якщо гравцю статус VIP), я використовую синхронні запити. Це змушує гру зупинитися на …

2
Перетворити одиниці вимірювання
Потрібно обчислити найбільш підходящу одиницю вимірювання для списку речовин, де речовини наведені в різних (але сумісних) одиничних обсягах. Таблиця перетворення одиниць Таблиця перетворення одиниць зберігає різні одиниці та спосіб співвідношення цих одиниць: id unit coefficient parent_id 36 "microlitre" 0.0000000010000000000000000 37 37 "millilitre" 0.0000010000000000000000000 5 5 "centilitre" 0.0000100000000000000000000 18 18 "decilitre" …

3
Як я можу визначити, чи існує таблиця на поточному пошуковому шляху з PLPGSQL?
Я пишу сценарій налаштування для програми, яка є додатком для іншої програми, тому я хочу перевірити, чи існують таблиці для іншого додатка. Якщо ні, я хочу надати користувачеві корисну помилку. Однак я не знаю, яка схема буде містити таблиці. DO LANGUAGE plpgsql $$ BEGIN PERFORM 1 FROM pg_catalog.pg_class c JOIN …

2
Чи працює COMMIT в рамках анонімної функції plgpsql в PostgreSQL 9.5?
Я імпортую велику кількість великих файлів у ряд таблиць, які повинні бути розділені за допомогою циклів у блоці анонімного коду plpgsql $do$. $do$ BEGIN FOR yyyy in 2012..2016 THEN EXECUTE $$COPY table$$||yyyy||$$ FROM 'E:\data\file$$||yyyy||$$.csv DELIMITER ',' CSV;$$; END LOOP; END; $do$ LANGUAGE plpgsql Весь цей процес повинен зайняти близько 15 …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.