Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
Paginare Oracle
Nuovo argomento   Rispondi    Indice del forum -> Programmazione
Precedente :: Successivo  
Autore Messaggio
horus
Macchinista
Macchinista


Registrato: 22/03/05 09:48
Messaggi: 2554
Residenza: Sirio e dintorni

MessaggioInviato: 09 Set 2005 14:11    Oggetto: Paginare Oracle Rispondi citando

Note dolenti, sto cercando di fare una query con la paginazione su un db oracle. Giusto per intenderci quello che in mysql farei con questa:
Codice:
select * from tabella order by campo limit 40,20

Ho cercato e ricercato ma non ho trovato un comando analogo in oracle, in giro qualcuno suggerisce una soluzione alternativa e cioè questa:
Codice:
select * from
(
 select a.*, rownum r from
 (
  select *
  from tabella
  order by campo
 ) a
where rownum <= 60
) b
where r >= 40

Purtroppo funziona dalla versione 8.1 ma io devo farlo su una 8.0 dove l'order by di una subquery non è ammesso.

Idee?
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11566
Residenza: Tokelau

MessaggioInviato: 09 Set 2005 14:37    Oggetto: Rispondi citando

una select "top" non esiste?

edit: altrimenti niente subquery, aggiungi solo rownum, ordini per quel campo e fai tante next quante >= (10 * (pagina-1)) poi visualizzi 10 record...

certo non sarà un mostro di performance...


L'ultima modifica di SverX il 09 Set 2005 14:42, modificato 1 volta
Top
Profilo Invia messaggio privato HomePage
horus
Macchinista
Macchinista


Registrato: 22/03/05 09:48
Messaggi: 2554
Residenza: Sirio e dintorni

MessaggioInviato: 09 Set 2005 14:42    Oggetto: Rispondi

No, la parola chiave TOP non esiste in oracle, l'equivalente è rownum ma parte sempre da 1 quindi posso fargli prendere sempre e solo le prime tot ma non modificare l'offset.

A seguito di svariate ricerche credo che non si possa fare, se comunque ti/vi viene in mente qualche idea fatemi sapere.
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Programmazione Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi