2 questions sur Oracle, une limitation et une sauvegarde

2 questions sur Oracle, une limitation et une sauvegarde - SQL/NoSQL - Programmation

Marsh Posté le 14-05-2004 à 11:49:06    

'lut tt le monde
voila j'ai 2 questions sur oracle...
- je voudrais savoir s'il est possible d'exporter le contenu d'une table dans un fichier texte  (pour ensuite faire un copy paste du fichier et retrouver la table (meme sans les contraintes je m'en fou, je veux juste recuperer les données)
 
- comment implementer le limit en ORACLE ?
par exemple je veux afficher les 10premiers resultats, je mets where rownum<=10
mais si je veux afficher les 10suivants... je fais comment ?
merci bien

Reply

Marsh Posté le 14-05-2004 à 11:49:06   

Reply

Marsh Posté le 14-05-2004 à 15:29:34    

pour la limitation c bon ...
mais pour la sauvegarde :?

Reply

Marsh Posté le 15-05-2004 à 10:12:08    

je comprends pas trop ton 'copy/paste' ...
 
si tu veux juste exporter le contenu d'une table, et le réimporter par la suite (dans la même base ou une autre), il suffit d'utiliser les outpils Oracle fournis :
  imp / exp

Reply

Marsh Posté le 15-05-2004 à 14:54:22    

oe je me suis mal exprime je veux avoir un fichier texte du genre
drop table toto
create new table toto (..)
insert into toto values(titi,tata,toto)
insert into toto values(...)
et ainsi de suite
 
 
bon par contre ma limitation ne fonctionne pas :'(
 
je fais une requete comme celle ci
select nom,prenom from
(select nom,prenom,ronwnum as nbl FROM table order by nom)
where nbl between 20 and 30
 
en fait je ne peux pas mettre d'order dans ma sous-requete
y'a t 'il un moyen de contourner ceci ??
je veux d'abord faire mon tri et apres choisir ce que je veux aficher.

Reply

Marsh Posté le 15-05-2004 à 16:04:16    

"en fait je ne peux pas mettre d'order dans ma sous-requete"
 
pourquoi ???

Reply

Marsh Posté le 15-05-2004 à 16:27:27    

:-?
(Test de Smiley)

Reply

Marsh Posté le 15-05-2004 à 16:27:33    

Marche pas

Reply

Marsh Posté le 15-05-2004 à 17:56:48    

WIllits a écrit :

:-?
(Test de Smiley)


 
:heink:

Reply

Marsh Posté le 15-05-2004 à 17:59:08    

swich a écrit :


mais si je veux afficher les 10suivants... je fais comment ?


where rownum > 10 and rownum <= 20

Reply

Marsh Posté le 15-05-2004 à 18:12:47    

non le problem viens de la :
select nom,prenom,ronwnum as nbl FROM table order by nom)  
oracle ne veut pas du order by nom, il veut une parenthese droite

Reply

Marsh Posté le 15-05-2004 à 18:12:47   

Reply

Marsh Posté le 15-05-2004 à 18:17:20    

Essaye plutôt ça :
 

Code :
  1. select nom, prenom from
  2. (select nom, prenom FROM table order by nom)
  3. where rownum between 20 and 30;

Reply

Marsh Posté le 15-05-2004 à 18:20:19    

t'as essayé ça ?
SELECT gnagna FROM truc WHERE mod(rownum,10) = 0

Reply

Marsh Posté le 15-05-2004 à 18:21:10    

je vois pas l'intérêt ... mod c'est bien le modulo ? donc ce n'est pas ce qu'il veut.

Reply

Marsh Posté le 15-05-2004 à 18:23:44    

Beegee a écrit :

je vois pas l'intérêt ... mod c'est bien le modulo ? donc ce n'est pas ce qu'il veut.


ok, mon select n'a rien à voir :D
mais le modulo pourrait être la solution s'il arrive à l'utiliser correctement (par exemple, afficher les 10 résultats suivants si le modulo = 0)

Reply

Marsh Posté le 15-05-2004 à 18:26:43    

bah justement non, la valeur du modulo change à chaque incrément :)

Reply

Marsh Posté le 16-05-2004 à 14:32:21    

Beegee a écrit :

Essaye plutôt ça :
 

Code :
  1. select nom, prenom from
  2. (select nom, prenom FROM table order by nom)
  3. where rownum between 20 and 30;




le probleme vient du order, je ne peux pas le mettre dans ma requete..meme qd je fais un select * from (select * from table order by id) ca plante
...


Message édité par swich le 16-05-2004 à 14:33:10
Reply

Marsh Posté le 16-05-2004 à 17:25:56    

bizarre ... Oracle supporte ça normalement !

Reply

Marsh Posté le 17-05-2004 à 10:14:15    

ptetre pq c'est oracle 7.1...
 
dc sinopn il n'ya pas un moyen de faire cette limitation ???

Reply

Marsh Posté le 17-05-2004 à 10:49:36    

pourquoi deja oracle ne prends pas cete requette ?
select * from table where rownum>15;

Reply

Marsh Posté le 17-05-2004 à 10:49:52    

juste a cause du superieur.

Reply

Marsh Posté le 15-06-2005 à 10:37:49    

Salut,
 
pour utiliser cette fonctionnalité de pagination de tes résultats sous Oracle, tu dois utiliser l'option GROUP BY en mettant ensuite :
HAVING ROWNUM BETWEEN 20 AND 40 par exemple.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed