Trou dans ma table oracle

bigood69 Messages postés 2 Date d'inscription mardi 22 février 2005 Statut Membre Dernière intervention 23 février 2005 - 22 févr. 2005 à 15:40
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 23 févr. 2005 à 17:04
Bonjour,
A cause d'une fausse manipulation j'ai delete quelque ligne (100 qui ne se suivent pas) d'une de mes tables oracle (qui contient 8 000 000 de ligne) et je n'arrive pas a localiser ces trous !! <?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shape id=_x0000_i1025 style="WIDTH: 11.25pt; HEIGHT: 11.25pt" alt="" type="#_x0000_t75"><v:imagedata o:HREF="/imgs2/smile_angry.gif" src="file:///C:/DOCUME~1/Legrand/LOCALS~1/Temp/msoclip1/01/clip_image001.gif"></v:imagedata></v:shape>

Ma table comprend une colonne id avec les numéros de chaque ligne ( 1,2,3,4,5,6,7,8,9, etc.)

Je voudrais trouver une commande sql qui me permettrait de trouver les id des lignes que j'ai supprimé
genre qui me donne 6 si ma table contient ( 1,2,3,4,5,7,8,9, etc.) au lieu de ( 1,2,3,4,5,6,7,8,9, etc.)

Merci pour votre aide !!!!

3 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
22 févr. 2005 à 19:17
Salut



Pour realiser ce travail utilise une procedure stockee

ou un programme



pour la procedure stockee

utilise un curseur



pour un programme ou la procedure voici un ptit algo





moncurseur = select * from matable

moncursueur.open (ou exceute)

moncompteur = 0

while moncurseur.read

if moncursor.num = moncompteur --> OK

sinon

while moncursor.num > moncompteur

print manque enregsitrement moncompteur

moncompteur ++

wend

wend



voila

desole pour mon algo mais le principe est correct je pense.
0
bigood69 Messages postés 2 Date d'inscription mardi 22 février 2005 Statut Membre Dernière intervention 23 février 2005
23 févr. 2005 à 16:24
excuse moi mais j'ai du mal a suivre ton algo <!--[if gte vml 1]><v:shapetype
id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" alt="" style='width:11.25pt;
height:11.25pt'>
<v:imagedata src="file:///C:\DOCUME~1\RMI~1\LOCALS~1\Temp\msohtml1\01\clip_image001.gif"
o:HREF="/imgs2/smile_question.gif"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]-->

peu tu éclairer ma lanterne stp

Merci
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
23 févr. 2005 à 17:04
procedure maproc

is

cursor myc is select nu from matable;

myrow matable%rowtype;



begin

open myc;

declare moncompteur NUMBER : = 0;



loop

fetch myc in myrow

exit when myc%notfound;



if myrow.num = moncompteur then

--> rien faire

else

while myrow.compteur > moncompteur

dbms_ouput.put_line('ligne : ' || to_char(moncompteur) ||' introuvable');

moncompteur := moncompteur +1;

end if;



end loop;

close myc;

end maproc;



Esperant que ca fonctionne j'ai pas de systeme oracle sous la main.

Et j'ai jamais fait de procedure stockee PL/SQL depuis plus de 5 ans.
0
Rejoignez-nous