
generador de datos aleatoreos
Publicado por outrera (35 intervenciones) el 16/04/2014 22:46:00
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
CREATE TABLE generador.nombre
(
id_nombre bigint NOT NULL,
nombre character varying(60),
id_sexo integer,
CONSTRAINT nombre_pkey PRIMARY KEY (id_nombre)
)
CREATE OR REPLACE FUNCTION generador.clave_aleatoria()
RETURNS character varying AS
$BODY$DECLARE o_codigo varchar;
BEGIN
SELECT INTO o_codigo trunc(random() * (9999-1000) + 1000)::varchar || substring(trim(generador.apellido_aleatorio()),1,2) || trunc(random() * (9999-1000) + 1000)::varchar ;
return o_codigo;
END;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION generador.clave_aleatoria()
OWNER TO postgres;
CREATE OR REPLACE FUNCTION generador.fecha_aleatoria()
RETURNS date AS
$BODY$DECLARE
fecha date;
BEGIN
select into fecha cast( now() - '60 year'::interval * random() as date );
return fecha;
END;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION generador.fecha_aleatoria()
OWNER TO postgres;
CREATE OR REPLACE FUNCTION generador.genera_seudonimo(p_nombre character varying, p_apellido character varying)
RETURNS character varying AS
$BODY$DECLARE
v_cantidad integer;
v_cadena varchar;
BEGIN
LOOP
v_cadena := trim(substring( (replace(p_nombre,' ','') || replace(p_apellido,' ','')) ,1,16))|| trunc(random() * (9999-1000) + 1000)::varchar;
select into v_cantidad count (*) from acceso.usuario where seudonimo=v_cadena;
EXIT WHEN v_cantidad = 0; -- same result as previous example
END LOOP;
return v_cadena;
END;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION generador.genera_seudonimo(character varying, character varying)
OWNER TO postgres;
CREATE OR REPLACE FUNCTION generador.get_random_number(integer, integer)
RETURNS integer AS
$BODY$
DECLARE
start_int ALIAS FOR $1;
end_int ALIAS FOR $2;
BEGIN
RETURN trunc(random() * (end_int-start_int) + start_int);
END;
$BODY$
LANGUAGE plpgsql VOLATILE STRICT
COST 100;
ALTER FUNCTION generador.get_random_number(integer, integer)
OWNER TO postgres;
CREATE OR REPLACE FUNCTION generador.nombre_aleatorio()
RETURNS character varying AS
$BODY$DECLARE
v_cantidad integer;
p_id_nombre integer;
p_nombre varchar;
BEGIN
select into v_cantidad count(*) from generador.nombre;
p_id_nombre:=(1 + (v_cantidad - 1) * random())::int;
select into p_nombre nombre from generador.nombre where id_nombre=p_id_nombre;
return p_nombre ;
END;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION generador.nombre_aleatorio()
OWNER TO postgres;
CREATE OR REPLACE FUNCTION generador.obtener_tipo_sexo(p_nombre character varying)
RETURNS integer AS
$BODY$DECLARE
p_tipo integer;
BEGIN
Select into p_tipo id_sexo from generador.nombre where nombre=p_nombre;
return p_tipo;
END;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION generador.obtener_tipo_sexo(character varying)
OWNER TO postgres;
Valora esta pregunta


0