Oracle : Générer une série de date

By , 15/02/2011

Comment est-il possible de générer une séquence de date à partir d’une simple requête SQL sur un base de données Oracle ?

Pour comprendre le principe, il faut savoir que ce type de résultat est obtenu en deux étapes. La première est la génération d’un nombre défini de données à partir d’une requête SQL. La seconde est la transformation des données générées pour obtenir des dates.

Génération d’une série de données

Il existe plusieurs façons de générer un nombre défini de données qui peuvent être exploitées par la suite. Voici un exemple simple :

SELECT 1
FROM DUAL
CONNECT BY LEVEL <= < n >

Avec n le nombre de données que vous souhaitez obtenir. Voici le résultat pour n = 3 :

1
———————-
1
1
1

Transformation de la série en séquence de dates

A partir des données générées précédemment, il est possible de créer une séquence de date avec ce type de requête SQL :

SELECT TRUNC(TO_DATE('20080415','yyyymmdd'),'MM')+ROWNUM -1 DATES FROM (
   SELECT 1
   FROM DUAL
   CONNECT BY LEVEL <= <n>
)

Voici le résultat pour n = 3 :

DATES
————————-
01/04/08
02/04/08
03/04/08

Sources : Pour plus d’explications, vous pouvez vous référer au site internet qui m’a servi de référence : http://www.dba-oracle.com/t_test_data_date_generation_sql.htm. Vous y retrouverez entre autre deux façons différentes de générer une série de données.

Leave a Reply


× one = 2

OfficeFolders theme by Themocracy