Trabalhei algum tempo com VB6 mas agora iniciei em uma nova oportunidade de trabalho com PL/SQL, preciso de ajuda para entender como funcionam as comparações nessa linguagem, por exemplo, estou desenvolvendo um relatório que rodará um SELECT e para cada registro (id) preciso fazer uma consulta na base para saber se houve entrada de dados na tabela para o mesmo código (id) nos últimos 30 dias, se positivo, vou indicar ‘SIM’ em uma coluna nomeada como REINCIDENTE, senão não farei nada… Gostaria de saber como posso montar isso e se devo usar CURSOR, pois tenho lido sobre ele e pra quem entende um pouquinho de VB me parece familiar com o RecordSet, onde eu guardo o resultado do SELECT e navego registro por registro verificando minhas consistências… por favor, se alguém puder postar um bloco com esse exemplo que eu passei, ficarei muito grato.
Acredito que vc precisara criar uma tabela temporária…tt_dados_conf
retorno coloquei dentro de um cursor…p_cursor
espero que te ajude…
Um abraço
V
Vinicius_Infoti
Ótimo @Manoel_Rosa , vou analisar com calma, obrigado,
Só mais uma dúvida, eu fiz um teste usando SUBSELECT dentro do SELECT, gostaria de saber se isso faz com que a busca seja feita a cada registro do meu SELECT principal, descartando a necessidade do uso do CURSOR, qual a diferença entre usar um ou outro?
(SELECT COUNT(a.cd_atendimento) FROM ATENDIME a WHERE ((a.dt_atendimento >= TRUNC(SYSDATE - 30))) and (a.cd_paciente = p.cd_paciente) and (a.tp_atendimento = ‘i’)) AS ULTIMA_INT,
Obrigado.
M
Manoel_Rosa
Cara se vc consegue o resultado numa subquery nem pense duas vezes…
o cursor sera mais oneroso que a subquery…
Cursores (geralmente)consomem muitos recursos do servidor, facilitando a ocorrência de deadlocks que poderiam ser evitados. Um cursor seria como um arquivo temporário que armazena e controla as linhas retornadas de um comando select… serviria para vc manipular os dados(fazer consultas, alterar, montar uma estrutura de retorno)…
Quando vi a sua duvida imaginei que uma subquery ajudaria, mais não conheço a estrutura então tentei criar um cursor de exemplo.
V
Vinicius_Infoti
Ótimo @Manoel_Rosa , consegui usando a SUBQUERY mesmo, só estava na dúvida se tinham o mesmo sentido, manipular todos os dados encontrados no SELECT principal, obrigado pelo exemplo de CURSOR, vou guardá-lo aqui pois com certeza logo precisarei usar, estou com muitos relatórios pendentes, rsrs… Valeu grande abraço.