Простой интерпретатор скриптов PostgreSQL. Примеры применения. Пример 8

На предыдущую страницу…

Пример-8. Запись информации в поля таблиц базы данных

В схеме tmp базы данных существует таблица БД tmp.fio_list (см. рисунок ниже), созданная для иллюстративных целей.

Содержание этой таблицы приведено на рисунке ниже.

Приведенный ниже скрипт иллюстрирует процесс считывания данных из строки этой таблицы и записи данных в ту же строку этой таблицы.

-- Создать временную таблицу scr_pg_vars_tt999 для хранения значений переменных скрипта
select * from script_pg_vars_table_tmp_create();

-- Изменить значения полей в таблице базы данных
select * from public.script_pg_execute
    (
    '
    ФИО:=ТаблицаПолеЗначениеКакСтрокаПолучить("tmp.fio_list", "fio", "code=106");
    ФИО_изм := "Некто Новый...";
    Результат_Записи_ФИО:=ТаблицаПолеЗначениеКакСтрокаЗаписать("tmp.fio_list", "fio", "code=106", ФИО_изм);
    Оклад := ТаблицаПолеЗначениеКакЧислоПолучить("tmp.fio_list", "oklad", "code=106");
    Оклад_Расчетный := (Оклад + 100) * 1.8;

Результат_Записи_Оклада:=ТаблицаПолеЗначениеКакЧислоЗаписать("tmp.fio_list", "oklad", "code=106", Оклад_Расчетный);
    Активность:=ТаблицаПолеЗначениеКакЛогическоеПолучить("tmp.fio_list", "yes_active", "code=106");
  Результат_Записи_Активности:=ТаблицаПолеЗначениеКакСтрокаЗаписать("tmp.fio_list", "yes_active", "code=106", "True");
    Результат_Записи_Даты1:=ТаблицаПолеЗначениеКакСтрокаЗаписать("tmp.fio_list", "d1", "code=106", "2022-07-01");
    Результат_Записи_Даты2:=ТаблицаПолеЗначениеКакСтрокаЗаписать("tmp.fio_list", "d2", "code=106", "2022-07-31");
    Результат_Записи_Прим:=ТаблицаПолеЗначениеКакСтрокаЗаписать("tmp.fio_list", "note", "code=106", "Примечание какое-то");    
    '
    );

-- Посмотреть значения переменных после выполнения скрипта
select * from scr_pg_vars_tt999 order by var_name;

-- Удалить временную таблицу scr_pg_vars_tt999 для хранения значений переменных скрипта
-- select * from script_pg_vars_table_tmp_drop();

На рисунках ниже приведен результат.


Дата: 01.07.2022