récupérer une liste de séquence avec un select - SQL/NoSQL - Programmation
Marsh Posté le 28-03-2008 à 02:44:25
n'importe laquelle de tes tables à toi qui contient beaucoup des lignes
Marsh Posté le 28-03-2008 à 10:04:15
ouais, mais c'est pas 100% fiable
sinon la solution c'était de récupérer les séquences avec le select qui servais à ramener les lignes à insérer par la suite, j'aidais un collègue qu'était pas très réveillé, dixit lui même
Marsh Posté le 28-03-2008 à 11:16:33
en db2 je ne sais mais il doit y avoir moyen de s'insipirer de la méthode via connect by d'oracle
Code :
|
Marsh Posté le 28-03-2008 à 11:47:46
casimimir a écrit : en db2 je ne sais mais il doit y avoir moyen de s'insipirer de la méthode via connect by d'oracle
|
ok en récursif sans doute
il y a moyen mais il faut deux select et union all, c'est pas aussi clair que dans oracle comme souvent dans db2
d'ailleurs pour les rowids sous db2
Citation : To use a Rowid in DB2, a column must be created on a table using the Rowid datatype. |
encore un truc lourd ...
Marsh Posté le 28-03-2008 à 15:55:07
basketor63 a écrit : salut, je voudrais pouvoir récupérer une liste de séquences avec un select |
Petite proposition pour retourner 100 valeurs de séquences :
Code :
|
Il faut générer une suite de 1 à n (100 dans cet exemple) en mode récursif (DB2 génère automatiquement une table TEMP).
Certes ce n'est pas super intuitif, c'est du DB2, c'est comme le TRUNCATE sous Oracle qui devient un vulgaire "ALTER TABLE xxx ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE" sous DB2
Marsh Posté le 28-03-2008 à 17:16:26
laul, bien joué, j'ai pas eu le courage de le faire d'ailleurs
et sinon la methode recursive made in db2, je m'en servais pour rétablir l'intégrité des tables apres une desactivation d'intégritée
car ça mettais toutes les tables dépendantes par contraintes en mode "check pending"
Code :
|
et encore j'ai pas poussé jusqu'a metre la table en question en parametre ...
Marsh Posté le 26-03-2008 à 19:04:37
salut, je voudrais pouvoir récupérer une liste de séquences avec un select
SELECT NEXTVAL FOR ma_sequence FROM SYSIBM.SYSDUMMY1 fetch first 100 rows only
alors ça ça renvoie un résultat, la table sysdummy1 c'est léquivalent de la table dual de oracle
donc je le fais avec une autre table systeme à db2, et ça marche, mais je me demande si il y a pas un table équivalente à DUAL mais infinie par exemple donc la seule limite serait le fetch first X rows only