Problème insertion données Oracle

Fermé
thierry - 28 juin 2002 à 12:08
 vinz - 28 juin 2002 à 22:28
Maîtrisant mal les bases oracle, je soumet un problème intervenant lors de l'insertion de données: aprés avoir crée une nouvelle instance de base de données et construit les tables, je lance des scripts sql pour remplir la base.
Ces scripts (commandes sql) sont exécutés depuis l'outil sqlPlus Worksheet. Pour chaque insert, est affiché le message "1 ligne créee".
Juste aprés l'exécution, si je vérifie le contenu de la table avec un ordre select, j'obtiens bien les enrgistrements que je viens d'insérer.
Par contre au niveau de la console d'Enterprise Manager, lorsque je fais un clic droit sur la table que je viens de remplir et en choisissant l'éditeur de tables de données, je ne visualise aucune donnée insérée.
Deux cas se proposent alors selon les différentes tables : pour certaines, les données sont effectivement disponibles dans la console aprés un temps de latence trés important, pour d'autres tables ces données ne sont jamais disponibles.
De retour dans l'outil sqlPlus Worksheet, je peux toujours consulter mes enregistrements, du moins pendant un certain temps après quoi, il semble qu'elles soient effaçées.
Tout semble se passer comme si après l'insertion, oracle stocke les données dans un espace temporaire, et qu'aprés une certain laps de temps où l'insertion n'a pas pu être effective physiquement, les données sont perdues.
Peut-être que le problème se situe au niveau de la création de la base où des tables.
Je travaille sur unr base oracle8i (version 8.1.7).

Voilà, j'espère que ce problème pourra facilement être résolu.
Merci d'avance.
A voir également:

1 réponse

Salut,
Quand tu lance ton script, tes données sont générées dans un segment temporaire effectivement, lequel ne se déverse en physique qu'au commit final de ton script. Si la base est stable, le commit est automatique après un certain tps ce qui explique le tps de latence observé. Il y a donc pls solutions : soit le commit n'est pas effectif, soit l'espace temp n'est pas correctement dimensionné pour les script que tu lances. Dans ce cas tu peux :
générer tes scripts, vérifier les insertions (combien de lignes crées pour combien d'insert du script), tu fais un commit après et tu vas inspecter tess tables. Si ça ne tourne pas, tu casses ton script : tu y colles des chekpoint tous les 5 ou 6 insert et un commit. Ca te permettra de passer en physique au fur et à mesure du deroulement du script et de libérer le segment temp pour la suite du script.
Bien entendu l'idéal serait de faire un audit de la base mais la il vaut mieux voir le DBA !
0