Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/02/2005, 09h23   #1
Invité régulier
 
Inscription : janvier 2005
Messages : 28
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 28
Points : 9
Points : 9
Par défaut [DB2]requete avec 'LIMIT' ?!

Bonjour à tous,

je souhaiterai utiliser la restriction LIMIT dans ma requete sql mais il n'en veut pas ni de ça ni de 'top' .

Que puis-je utiliser ?

Ma requete :

Code :
1
2
3
4
5
6
7
8
 
SELECT LMBANO 
FROM MILOMA 
WHERE LMITNO='".$txtCdp."' 
AND LMCONO=400 
AND LMBANO LIKE  '".$annee."%' 
ORDER BY LMBANO DESC 
LIMIT 1,10
Merci de votre aide
beastman007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2005, 16h52   #2
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
Code :
1
2
3
4
5
6
7
SELECT LMBANO 
FROM MILOMA 
WHERE LMITNO='".$txtCdp."' 
AND LMCONO=400 
AND LMBANO LIKE  '".$annee."%' 
ORDER BY LMBANO DESC 
FETCH FIRST 10 ROWS ONLY
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2005, 17h05   #3
Invité régulier
 
Inscription : janvier 2005
Messages : 28
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 28
Points : 9
Points : 9
Merci beaucoup !
beastman007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2005, 08h51   #4
Invité de passage
 
Inscription : mars 2005
Messages : 1
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1
Points : 1
Points : 1
Bonjour,
Y a-t-il un moyen de prendre les lignes 10 à 20 comme avec LIMIT ?
Code :
1
2
3
4
5
 
SELECT ...
FROM ...
WHERE ...
LIMIT 10,10
yellow_panther est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2005, 10h00   #5
Membre confirmé
 
Avatar de iubito
 
Homme
Développeur informatique
Inscription : janvier 2003
Messages : 376
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : janvier 2003
Messages : 376
Points : 244
Points : 244
et pour les requêtes update ? est-ce possible de limiter la mise à jour à x enregistrements ?
Et y a-t'il une syntaxe standardisée utilisable sur DB2 et sur MySQL ?

merci d'avance
__________________
Compatibilité CSS | Hacks CSS IE | IE7

Lé SMS cé kom lé ognon, sa pike lé yeu
iubito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 21h42   #6
Invité régulier
 
Développeur Web
Inscription : janvier 2007
Messages : 10
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2007
Messages : 10
Points : 6
Points : 6
Citation:
Envoyé par yellow_panther
Bonjour,
Y a-t-il un moyen de prendre les lignes 10 à 20 comme avec LIMIT ?
Code :
1
2
3
4
5
 
SELECT ...
FROM ...
WHERE ...
LIMIT 10,10
Bonjour,

Je me permets de reprendre ce post, car j'ai aussi le même problème.
J'utilise TSO pour accéder à des bases sous DB2.

Je dois lister tous les enregistrements d'une table, et TSO plante systématiquement si je monte la limite du nombre de résultats au-delà de 5000. Il y a un peu moins de 666 000 enregistrements.
Je dois donc les récupérer par étapes (par paquets de 5000 par exemple).

J'ai trouvé en cherchant les fonctions SetFetchSize() et SetMaxResults() qui ont l'air d'appartenir davantage à JAVA qu'au SQL de DB2. Je ne crois pas que je pourrai les utiliser, car le seul langage que j'utilise dans ce cas, c'est le SQL.

Y a-t-il un équivalent de LIMIT n1,n2 en SQL chez DB2?

Merci
DeLorbe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 22h04   #7
Membre Expert

 
Homme François Durand
Spécialiste Delivery Mainframe IBM
Inscription : octobre 2005
Messages : 1 097
Détails du profil
Informations personnelles :
Nom : Homme François Durand
Âge : 53
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Spécialiste Delivery Mainframe IBM
Secteur : Finance

Informations forums :
Inscription : octobre 2005
Messages : 1 097
Points : 1 706
Points : 1 706
Citation:
Envoyé par DeLorbe
...
Je me permets de reprendre ce post, car j'ai aussi le même problème.
J'utilise TSO pour accéder à des bases sous DB2.

Je dois lister tous les enregistrements d'une table, et TSO plante systématiquement si je monte la limite du nombre de résultats au-delà de 5000. Il y a un peu moins de 666 000 enregistrements.
Je dois donc les récupérer par étapes (par paquets de 5000 par exemple).
...
Quelque chose doit m'échapper car je vois mal l'interêt de lister une table de près de 700 000 lignes à l'écran, mais bon ...
Sinon, sous TSO / SPUFI il y a un paramètre pour limiter le nombre de lignes retournées ...
Luc Orient est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 22h32   #8
Invité régulier
 
Développeur Web
Inscription : janvier 2007
Messages : 10
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2007
Messages : 10
Points : 6
Points : 6
Citation:
Envoyé par Luc Orient
Quelque chose doit m'échapper car je vois mal l'interêt de lister une table de près de 700 000 lignes à l'écran, mais bon ...
Sinon, sous TSO / SPUFI il y a un paramètre pour limiter le nombre de lignes retournées ...
Salut,

D'abord, merci pour ta réponse.

Je précise : je veux récupérer tout ça pour en faire un tableau Excel, ce qui m'évitera d'avoir à faire à chaque fois la manipulation d'exportation, puis de mise en forme des résultats. C'est long, lourd, et on peut modifier la demande à chaque instant.
Car ces données qu'on me demande ne sont jamais les mêmes, et font l'objet d'analyses a posteriori dans un tableau croisé, ou à l'aide de filtres divers.

J'ai modifié le paramètre en question dans SPUFI, mais au-delà de 5000, il plante systématiquement.
DeLorbe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 10h45   #9
jab
Rédacteur
 
Avatar de jab
 
Homme Jean-Alain Baeyens
SharePoint developpeur
Inscription : février 2004
Messages : 1 172
Détails du profil
Informations personnelles :
Nom : Homme Jean-Alain Baeyens
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : SharePoint developpeur
Secteur : Service public

Informations forums :
Inscription : février 2004
Messages : 1 172
Points : 3 131
Points : 3 131
Envoyer un message via ICQ à jab Envoyer un message via MSN à jab Envoyer un message via Skype™ à jab
Il est possible d'utiliser une procédure stockée et un curseur:

Voir ce post.
jab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 18h46   #10
Membre Expert

 
Homme François Durand
Spécialiste Delivery Mainframe IBM
Inscription : octobre 2005
Messages : 1 097
Détails du profil
Informations personnelles :
Nom : Homme François Durand
Âge : 53
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Spécialiste Delivery Mainframe IBM
Secteur : Finance

Informations forums :
Inscription : octobre 2005
Messages : 1 097
Points : 1 706
Points : 1 706
Citation:
Envoyé par DeLorbe
...
Je précise : je veux récupérer tout ça pour en faire un tableau Excel, ce qui m'évitera d'avoir à faire à chaque fois la manipulation d'exportation, puis de mise en forme des résultats. C'est long, lourd, et on peut modifier la demande à chaque instant ...
Moi je ne ferais pas cela sous TSO / SPUFI.

Je passerais par un job batch avec un DSNTIAUL qui permet d'écrire les données dans un fichier. La seule petite difficulté, c'est qu'il faut décoder les colonnes en DECIMAL et INTEGER en utilisant la fonction scalaire CHAR.

En plus, avec une petite astuce, on peut même générer le séparateur ';' entre les colonnes extraites ce qui permet à EXCEL de reconnaitre le fichier comme de type CSV et de faire l'import en un seul clic

Question : un fichier issu d'une table de 700 000 lignes ce n'est pas trop gros pour EXCEL ?
Luc Orient est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 22h06   #11
jab
Rédacteur
 
Avatar de jab
 
Homme Jean-Alain Baeyens
SharePoint developpeur
Inscription : février 2004
Messages : 1 172
Détails du profil
Informations personnelles :
Nom : Homme Jean-Alain Baeyens
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : SharePoint developpeur
Secteur : Service public

Informations forums :
Inscription : février 2004
Messages : 1 172
Points : 3 131
Points : 3 131
Envoyer un message via ICQ à jab Envoyer un message via MSN à jab Envoyer un message via Skype™ à jab
Citation:
Envoyé par Luc Orient
Question : un fichier issu d'une table de 700 000 lignes ce n'est pas trop gros pour EXCEL ?
Bien vu. Il me semble que la limite est de l'ordre de 65000
jab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2007, 20h25   #12
Invité régulier
 
Développeur Web
Inscription : janvier 2007
Messages : 10
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2007
Messages : 10
Points : 6
Points : 6
Salut,

En effet, c'est ce que j'ai vu vendredi : c'est trop gros pour un fichier Excel.
En plus, cette base est mise à jour quotidiennement, il faudrait donc que je refasse la manip régulièrement pour récupérer les nouvelles entrées.

Résultat : je lâche l'affaire, je ferai des requêtes à la demande.
J'ai revu toute la procédure, j'exporte les résultats de la requête dans un fichier texte, qu'il faut que je retouche un peu avant de l'importer dans Excel.
Ensuite, je fais le nettoyage sous Excel, c'est assez rapide.

Mais je vais quand même voir vos solutions de plus près, pour ma culture perso.
Pour le DSN ça va être chaud : c'est une banque, et l'accès des utilisateurs est ultra restreint. ême un DSN utilisateur, je ne pense pas qu'on me ferait ça.
Je vais voir quand même.

Merci à tous pour vos réponses et pour votre aide

Nico
DeLorbe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2007, 10h29   #13
Membre du Club
 
Inscription : août 2006
Messages : 56
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : août 2006
Messages : 56
Points : 55
Points : 55
Perso,

Pour mes statistiques et rapports sur mes databases DB2 , j'utilise ACCESS.
La DB une fois définie en OBDC, je link les tables et je peux les utliser comme des tables ACCESS dans des queries ACCESS.
Les fonctions macros , formulaires et rapports sont alors disponibles.

Il m'arrive même d'y faire des updates.

Fini la limitation de 65000
ALHER est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2007, 10h50   #14
jab
Rédacteur
 
Avatar de jab
 
Homme Jean-Alain Baeyens
SharePoint developpeur
Inscription : février 2004
Messages : 1 172
Détails du profil
Informations personnelles :
Nom : Homme Jean-Alain Baeyens
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : SharePoint developpeur
Secteur : Service public

Informations forums :
Inscription : février 2004
Messages : 1 172
Points : 3 131
Points : 3 131
Envoyer un message via ICQ à jab Envoyer un message via MSN à jab Envoyer un message via Skype™ à jab
Citation:
Envoyé par ALHER
Perso,

Pour mes statistiques et rapports sur mes databases DB2 , j'utilise ACCESS.
La DB une fois définie en OBDC, je link les tables et je peux les utliser comme des tables ACCESS dans des queries ACCESS.
Les fonctions macros , formulaires et rapports sont alors disponibles.

Il m'arrive même d'y faire des updates.

Fini la limitation de 65000
De même, pour des requêtes ponctuelles, j'utilise volontier Access.
jab est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h05.


 
 
 
 
Partenaires

Hébergement Web