Bonjour,
Je souhaite insérer des données dans une table à partir d'un SELECT. Cependant, je veux insérer uniquement les n premières valeurs en fonction d'un critère (d'où une imbrication de requêtes pour combiner le ORDER BY puis le ROWNUM < n)
Jusque là le problème est classique, mais... pour pouvoir insérer ces données dans ma table, il faut que je fasse appel à une séquence pour chaque ligne remontée. Malheureusement les appels de séquences ne semblent pas pouvoir être utilisés dans des sous-requêtes :
Cette requête est incorrecte, car l'utilisation d'une séquence n'est pas autorisée ici.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT * FROM ( SELECT col1, col2, col3, masequence.nextval FROM matable ORDER BY col1 ) WHERE ROWNUM < n
J'ai essayé d'imbriquer le SELECT avec la séquence dans une autre sous-requête, sans le ORDER, mais le problème est le même.
Existe t-il une solution pour utiliser à la fois le ROWNUM, ORDER BY et une séquence, sans passer par un parcours itératif ?
Merci
Partager