Orcale : Récupérer toutes jours entre deux dates - SQL/NoSQL - Programmation
Marsh Posté le 07-12-2005 à 15:24:12
En effet, le plus simple est d'utiliser rownum dans une grosse table :
Code :
|
Marsh Posté le 07-12-2005 à 15:46:50
hmmmmm. je crois je vais me cantonner à utiliser la table "compteur".
ou alors à la limite une fonction qui tape dans "all_objects"
mais sinon... ça me semble un peu gore de mettre "all_objects" dans une requête alors que c'est pour récupérer une liste de jours je suis pas sûr que le gars qui va faire la maintenance derrière comprenne quoi que ce soit
Marsh Posté le 07-12-2005 à 16:08:46
Ajoute un commentaire
(au fait, t'es toujours si fâché avec Oracle que tu ne sais même pas écrire ces 6 lettres dans le bon ordre ? )
Marsh Posté le 07-12-2005 à 17:23:57
ben... on peut dire comme ça...
pas réussi à faire une fonction qui retourne une table... il sait vraiment pas faire ou quoi ?
seul truc que j'ai trouvé, c'est retourner une collection d'un datatype utilisateur, mais ça ne marche pas chez moi... c'est bizance !
Marsh Posté le 07-12-2005 à 14:25:39
Imaginez :
Mon patron à un problème : il veut récupérer toutes les dates comprises entre une date et une autre.
Moyen simple que j'ai trouvé :
Créer une table "compteur" contenant :
valeur
1
2
3
4
5
...
100
(on peut aller plus loin que 100 mais là ça suffit)
Puis faire :
Bon, ça marche sans problème.
Seulement, c'est pas super propre.
Est-ce qu'on peut trouver un autre moyen ?
Evidement, on peut se passer de cette table compteur et utiliser rownum sur une table contenant assez de lignes, m'enfin c'est pas mieu (et encore moins lisible
Via une fonction récursive (mais j'ai pas la synaxe en tête, voici la syntaxe SQL Server)
(grossomodo, à priori, ça marche pas, mais c'est presque ça
sauf que... bah on est limité en niveau de récursivité à 20 ou 30 occurences avec SQL Server, et Oracle a une limite assez proche, donc ça peut pas marcher dans tous les cas...