Gostaria de criar uma função de gerar hospedes no postgresql.. tenho a tabela, hospede, primeironome, segundonome e cidade.
create or replace function geraHospede(pQtde integer, pidadeMin integer, pidadeMax integer) returns integer as
$$
declare
_nome varchar(100);
_primeiroNome varchar(50);
_segundoNome varchar(50);
_qtde integer:= 0;
_cidade varchar(80);
_idade integer:= 0;
_ano integer:= 0;
_dia integer:= 0;
_mes integer:= 0;
_data date;
begin
if pidadeMin < pidadeMax and pidadeMin >= 18 and pidadeMax <= 65 then
for _qtde in 1..10 loop
select nome into _primeiroNome from primeironome random() limit 1;
select nome2 into _segundoNome from segundonome random() limit 1;
_nome:= _primeiroNome || ' ' || _segundoNome;
select nome into _cidade from cidade random() limit 1;
select floor(random()*(pidadeMin-pidadeMax+1))+pidadeMax into _idade;
select date_part('year', date ((to_char (now(), 'dd/mm/yyyy'))) - _idade*365) into _ano
select floor(random()*(1-28))+28 into _dia;
select floor(random()*(1-12))+12 into _mes;
_data:= _dia _mes _ano;
insert into hospede(nome, cidade, datanascimento) values (_nome, _cidade, _data);
_qtde:= _qtde + 1;
end loop;
return;
else
raise notice 'Fora do intervalo!!'
end if;
end;
$$ language 'plpgsql';
erro: ERROR: syntax error at or near ")" LINE 20: ... into _primeiroNome from primeironome.nome random() limit 1; ^ SQL state: 42601 Character: 493
Segue acima o código e o erro que estou tendo.
Além disso, como faço pra variável _data receber direitinho em formato de data o _mes, _dia, e _ano?
Alguém poderia me ajudar?