Select em Access p/ Oracle

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Nadia Teles
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 10
Registrado em: Seg, 19 Jun 2006 11:57 am
Localização: São Caetano do Sul

Bom dia Pessoal,

Alguém poderia me ajudar com este select. Tenho um select que funciona perfeitamente para access. Como converter para oracle?

Veja abaixo:

Selecionar tudo

Select * From Cadastro WHERE dateDiff('s', 
(Mid(Format([Data],'00000000'),7,2)+'/'+Mid(Format([Data],'00000000'),5,2)+'/'+Mid(Format([Data],'00000000'),1,4)+' 
'+Mid( Format([Hora],'000000'),1,2)+':'+Mid( 
Format([Hora],'000000'),3,2)+':'+Mid( Format([Hora],'000000'),5,2)),now()) > (Minuto * 60) ORDER BY Data, Hora 
O campo Data e do tipo int (armazeno a data como yyyymmdd)
O campo Hora e do tipo int (armazeno a hora como hhmmss)
O campo Minuto e do tipo int

Transformo a data e hora do banco para dd/mm/yyyy hhmmss e subtraio com a data/hora atual. Esta diferença deverá ser maior que o campo em minutos.

obrigada

Nadia
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

O problema é que você está usando funções específicas do Access.
Exemplo:
MID, DateDiff, Format, [campos] com [] entre eles... Isso tudo não é compatível com Oracle. Creio que MID é equivalente ao SUBSTR do Oracle. Pra concatenar é || e não +. E por aí vai.

Tente o seguinte:

Selecionar tudo

Select *
from cadastro 
where
  SYSDATE -  to_date(data||hora, 'yyyymmddhhmiss') > minuto * 60
order by data, hora
Nadia Teles
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 10
Registrado em: Seg, 19 Jun 2006 11:57 am
Localização: São Caetano do Sul

Quando executo o select abaixo, ele não está concatenando os dois campos (Data e Hora) e nem formatando para yyyymmddhhmiss . Ele apresenta somente a data:

Selecionar tudo

Select to_date(Data || Hora, 'yyyymmddhhmiss')  From Cadastro
Retorno:

19/06/06

O que pode estar errado?

obrigada

Nádia
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Você está usando o SQL*Plus pra testar ?
Se sim, lembre-se que o SQL*Plus não mostra as datas no formato de hh:mm como você quer.
Veja o exemplo abaixo:

Selecionar tudo

SQL> SELECT SYSDATE FROM DUAL;

SYSDATE
---------
19-JUN-06

SQL> SELECT TO_CHAR(SYSDATE, 'DD/MM/RRRR-HH24:MI:SS') A FROM DUAL;

A
-------------------
19/06/2006-13:40:54

SQL> 
Pra ver, eu coloquei um TO_CHAR e especifiquei o formato que eu queria.
Nadia Teles
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 10
Registrado em: Seg, 19 Jun 2006 11:57 am
Localização: São Caetano do Sul

Bom dia Pessoal,

Ainda não consegui resolver este select.

Usando a formatação de data para DD/MM/RRRR HH24:MI:SS, ele gera um erro quando a data é menor que 12:00. Ele pede para entrar com um valor inteiro de 1 a 23.

obrigada

Nadia
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Manda pra gente uma amostra dos dados que você tem.
Exemplo:
Faz um select hora, minuto from sua_tabela... E larga o resultado pra gente ver como que está sua informação.
Nadia Teles
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 10
Registrado em: Seg, 19 Jun 2006 11:57 am
Localização: São Caetano do Sul

Pessoal, obrigada pela ajuda. Enfim consegui fazer o select.

Nadia
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 12 visitantes