· 9 years ago · Dec 12, 2016, 07:10 PM
1--drop table prueba
2
3--drop temp table prueba
4-- select * from busqueda();
5--DROP FUNCTION busqueda()
6
7create or replace function busqueda()
8RETURNS TABLE(
9 idsignomarca bigint,
10 sm bigint,
11 marca character varying,
12 claseniza integer,
13 fecha_solicitud timestamp,
14 numero_publicacion bigint,
15 numero_registro bigint,
16 solicitante text,
17 apoderado text,
18 estado character varying,
19 fecha_registro timestamp without time zone,
20 fecha_renovacion timestamp without time zone,
21 titular character varying,
22 sr integer,
23 gestion_sr integer
24)
25AS
26$$
27DECLARE
28vquery text;
29
30BEGIN
31
32-- Creacion de la tabla temporal ----------------------------------------------------------
33create temp table if not exists prueba as
34select
35 sig.idsignomarca idsignomarca,
36 sig.sm sm,
37 sig.signo as marca,
38 ssc.numero_clase_niza as claseniza,
39 sig.fecha_solicitud as fecha_solicitud,
40 sig.numero_publicacion as numero_publicacion,
41 sig.numero_registro as numero_registro,
42 ''::text solicitante,
43 ''::text apoderado,
44 ''::character varying as estado,
45 sig.fecha_registro as fecha_registro,
46 sig.fecha_renovacion as fecha_renovacion,
47 ''::character varying as titular,
48 0::integer as sr,
49 0::integer as gestion_sr
50 from sigsignomarca sig
51 join sigsignoclaseniza ssc
52 on ssc.idsignomarca = sig.idsignomarca
53 where
54 upper(sig.signo) like upper('%pan%') --caso marcas
55 and sig.estado = 'AC';
56/*
57vquery := 'update prueba
58set solicitante = (select obt_solicitantesapoderados_idsignomarca(idsignomarca,''SOLI'')),
59apoderado = (select obt_solicitantesapoderados_idsignomarca(idsignomarca,''APOD''))
60';
61
62execute vquery;
63*/
64
65
66/*
67update prueba pr
68set solicitante = (select obt_solicitantesapoderados_idsignomarca(pr.idsignomarca,'SOLI')),
69apoderado = (select obt_solicitantesapoderados_idsignomarca(pr.idsignomarca,'APOD'))
70;
71*/
72
73
74
75
76
77update prueba pr
78set solicitante = (
79 select string_agg(concat(nombre_razonsocial, primer_apellido, segundo_apellido), ';') nombres
80 from sigsolicitanteapoderado sol
81 where sol.idsignomarca = pr.idsignomarca
82 and sol.tipo_persona = 'SOLI'
83 and sol.estado = 'AC'
84 group by sol.idsignomarca
85),
86apoderado = (
87 select string_agg(concat(nombre_razonsocial, primer_apellido, segundo_apellido), ';') nombres
88 from sigsolicitanteapoderado sol
89 where sol.idsignomarca = pr.idsignomarca
90 and sol.tipo_persona = 'APOD'
91 and sol.estado = 'AC'
92 group by sol.idsignomarca)
93;
94--where pr.idsignomarca = 146;
95
96/*
97update prueba pr
98set apoderado = (
99 select string_agg(concat(nombre_razonsocial, primer_apellido, segundo_apellido), ';') nombres
100 from sigsolicitanteapoderado sol
101 where sol.idsignomarca = pr.idsignomarca
102 and sol.tipo_persona = 'APOD'
103 and sol.estado = 'AC'
104 group by sol.idsignomarca
105);
106*/
107
108
109-- Creacion de la tabla temporal ----------------------------------------------------------
110
111return query
112select * from prueba;
113
114
115
116END;
117
118$$LANGUAGE plpgsql;