E ae pessoal !!!
Alguem sabe se existe uma funcao semelhante ao LAST do MS Access no Oracle 9i ?
Esta funcao retorna o ultimo registro incluido entre uma colecao de registros selecionados.
Falow!!!
E ae pessoal !!!
Alguem sabe se existe uma funcao semelhante ao LAST do MS Access no Oracle 9i ?
Esta funcao retorna o ultimo registro incluido entre uma colecao de registros selecionados.
Falow!!!
Uma sugestão:
select * from usuario where rowid = (select max(rowid) from usuario)
[quote=“RodrigoSol”]Uma sugestão:
select * from usuario where rowid = (select max(rowid) from usuario)
[/quote]
Eu não sei o que a função LAST retorna, mas se é a ultimo registro inserido na tabela (foi o que intendi) não da pra fazer assim não. O oracle não garante que este “MAX” do Rowid seja o ultimo registro inserido.
[]'s
troque rowid por rownum.
rownum é o numero da linha do cursor resultante da sua pesquisa.
[]'s
Ja rodou este SQL?
Ele não traz nada. Sinceramente a menos que a versão 9i tenha algo pronto, trazer o ultimo registro no oracle sem ter uma chave para isso da uma dor de cabeça.
[]'s
:arrow: Você pode colocar um timestamp na hora de inserir o registro.
psilva,
para as tabelas que tem uma sequence como chave, você pode fazer isso:
select u.* from usuario u where u.sq_usuario = (select max(us.sq_usuario) from usuario us)
Ou seguir a sugestão do Rodrigo com timestamp.
[quote=“MarcusGonçalves”]psilva,
para as tabelas que tem uma sequence como chave, você pode fazer isso:
select u.* from usuario u where u.sq_usuario = (select max(us.sq_usuario) from usuario us)
Ou seguir a sugestão do Rodrigo com timestamp.[/quote]
Uma questão simples que gera um transtorno grande demais!
Vou pesquisar… acho que tem um lugar no dicionario de dados do oracle que ele guarda isso…
até.
[quote=“RodrigoSol”][quote=“MarcusGonçalves”]psilva,
para as tabelas que tem uma sequence como chave, você pode fazer isso:
select u.* from usuario u where u.sq_usuario = (select max(us.sq_usuario) from usuario us)
Ou seguir a sugestão do Rodrigo com timestamp.[/quote]
Uma questão simples que gera um transtorno grande demais!
Vou pesquisar… acho que tem um lugar no dicionario de dados do oracle que ele guarda isso…
até.[/quote]
Rodrigo,
Se tu achar posta ai :D.
Como eu disse…acho meio dificil a não ser que a Oracle colocou isso na nova versão 10G. O que tb não acredito.
Essa discução ja rolou muito pano pra manga na lista de Oracle_Br no Yahoo. E nada de concreto alem de se usar uma sequence sendo gravada em um registro para após fazer essa busca.
O problema é que o Oracle não grava em ordem os registros. Isso vai da “cabeça” do banco na hora de fazer o insert.
Agora voltando ao post. Qual a tua chave primaria? Não tem como buscar por ela?
[]'s
Não dá mesmo…
O pior é que em todas as alternativas podemos ter problemas…
Segundo algumas informações que eu achei e que não tenho certeza da veracidade, o problema de usar timestamp é que existe possibilidade muito remota em um servidor com muitos processadores de ficar igual.
Usando sequence ou alguma outra chave você garante a ordem, mas pode ter problemas de performace em tabelas muito grandes…
Tome índices… :lol:
[]’s
[quote=“RodrigoSol”][quote=“fabgp2001”]
Rodrigo,
Se tu achar posta ai :D.
[/quote]
Não dá mesmo…
O pior é que em todas as alternativas podemos ter problemas…
Segundo algumas informações que eu achei e que não tenho certeza da veracidade, o problema de usar timestamp é que existe possibilidade muito remota em um servidor com muitos processadores de ficar igual.
Usando sequence ou alguma outra chave você garante a ordem, mas pode ter problemas de performace em tabelas muito grandes…
Tome índices… :lol:
[]’s[/quote]
É mas alguem sabe pq o Oracle não implementa isso?
[]'s
Olá
A chave deve incluir o timestamp, mas não deve ser formada exclusivamente pelo timestamp.
[]s
Luca
[quote=“Luca”]Olá
A chave deve incluir o timestamp, mas não deve ser formada exclusivamente pelo timestamp.
[]s
Luca[/quote]
Se eu usasse uma sequence, por exemplo, por que eu deveria incluir um campo timestamp?
Olá
Não quiz dizer que não possa usar outras alternativas. Só quiz enfatizar que a solução do timestamp é boa mas que o timestamp sozinho não serve para chave pela possibilidade de coincidência.
Na área de EDI há mensagens que podem ser iguais, isto é, o mesmo conteúdo pode ser enviado mais de uma vez. Exemplo: pedidos de entrega da industria automobilística que são reenviados várias vezes. Os pedidos precisam ser todos armazenados e comparados para verificar qual o mais recente e se o conteúdo é o mesmo.
Uma das possibilidades de solução é criar uma chave tipo sopa contendo o timestamp e outros ingredientes de modo a ter certeza que as mensagens estão na ordem de chegada.
[]s
Luca