зеркало из
https://github.com/iharh/notes.git
synced 2025-10-30 21:26:09 +02:00
42 строки
2.1 KiB
Plaintext
42 строки
2.1 KiB
Plaintext
https://www.postgresql.org/docs/current/plpgsql-cursors.html
|
|
|
|
set search_path to '???';
|
|
do $$
|
|
declare
|
|
c_custom_lexicon cursor is select id, name, language_id from cb_file_repository where type='???' and kind != 1;
|
|
obj_lex record;
|
|
c_custom_config cursor (lex_pat text, lang_id character(2)) is select id, name from cb_file_repository
|
|
where type='???' and language_id = lang_id and position(lex_pat::bytea in content) > 1;
|
|
obj_cfg record;
|
|
c_custom_df cursor (cfg_name text) is select cmp.id, dfl.project_id, dfl.name from cb_component as cmp, cb_dataflow as dfl, cb_cmp2dflref r
|
|
where r.dfl_id = dfl.id and r.cmp_id = cmp.id and cmp.name = '???' and dfl.project_id is not null
|
|
and position(cfg_name in cmp.cfg) > 1;
|
|
obj_df record;
|
|
--stmt_ins_cust_lex character varying (500);
|
|
begin
|
|
drop table if exists my_result;
|
|
create table my_result(
|
|
ID NUMERIC(20,0) NOT NULL,
|
|
NAME CHARACTER VARYING(128) NOT NULL,
|
|
LANGUAGE_ID CHARACTER(2) NOT NULL,
|
|
CONFIG_NAME CHARACTER VARYING(128) NOT NULL,
|
|
CONSTRAINT PK_MY_RESULT PRIMARY KEY (ID, NAME, LANGUAGE_ID, CONFIG_NAME),
|
|
CONSTRAINT UK_MY_RESULT UNIQUE (NAME, LANGUAGE_ID, CONFIG_NAME),
|
|
CONSTRAINT FK_CB_LP FOREIGN KEY (LANGUAGE_ID)
|
|
REFERENCES CB_LP (LANGUAGE_ID) ON DELETE CASCADE
|
|
);
|
|
for obj_lex in c_custom_lexicon loop
|
|
raise notice 'found custom lexicon name: %', obj_lex.name;
|
|
for obj_cfg in c_custom_config(obj_lex.name, obj_lex.language_id) loop
|
|
raise notice 'found custom config name: %', obj_cfg.name;
|
|
-- execute 'insert into my_result(id, name, language_id, config_name) values($1, $2, $3, $4)'
|
|
-- using obj_lex.id, obj_lex.name, obj_lex.language_id, obj_cfg.name;
|
|
for obj_df in c_custom_df(obj_cfg.name) loop
|
|
raise notice 'found custom df id: % name: %, prj: %', obj_df.id, obj_df.name, obj_df.project_id;
|
|
end loop;
|
|
end loop;
|
|
end loop;
|
|
end$$;
|
|
|
|
select * from my_result;
|