зеркало из
				https://github.com/iharh/notes.git
				synced 2025-10-31 21:56:08 +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;
 | 
