Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/07/2006, 10h37   #1
Membre habitué
 
Inscription : décembre 2005
Messages : 455
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 455
Points : 127
Points : 127
Par défaut PL/SQL: dispatche dans des fichiers

Bonjour,

je dois créer une procédure qui dispatche des données dans des fichiers.
Pour l'instant il n'y a pas beaucoup de données, donc on m'a dit de les disptacher dans 2 fichiers.
J'ai donc fait ainsi:
Code :
1
2
3
4
5
6
 
IF (MOD(DONNES,2)=1) THEN
  INSTRUCTION FICHIER1;
ELSE
  INSTRUCTION FICHIER2;
END IF;
Je mets donc les lignes paires dans le premierset les lignes impaires dans le second.
Mais je me suis dit que par la suite il était possible qu'on passe à 3 voire 4 fichiers et plus.
et donc il faudrait tout redevelopper.
Je voudrais donc créer dans ma procédure un système qui puisse gérer cela.
J'ai donc créer d'abord une variable MAX_FI:=2.
Il n'y aurait plus qu'à la changer et ainsi tout serait pris en compte.
Mais Alors comment faire le dispatche dans 3 fichiers, 4,5,6.
Mon système de lignes paires et impaires n'est plus d'actualité.
J'essaye de trouver un moyen mais je n'arrive pas à trouver.
Je ne sais pas si je suis dans le bon forum mais si quelqu'un peut m'orienter vers une solution, ce serait très sympa.
claralavraie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2006, 10h41   #2
Membre régulier
 
Inscription : mars 2004
Messages : 106
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2004
Messages : 106
Points : 94
Points : 94
Envoyer un message via MSN à insupien Envoyer un message via Yahoo à insupien Envoyer un message via Skype™ à insupien
bonjour,

quels sont les critères de dispatch?

est ce une obligation ou juste un choix personnel?

Si c un choix, tu peux mettre m importe quel critère exemple : taille max de fichier, nombre max d enregistrement...

sinon si c une obligation tu dois definir les critères de ton obligation.
__________________
Amine
insupien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2006, 10h56   #3
Membre habitué
 
Inscription : décembre 2005
Messages : 455
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 455
Points : 127
Points : 127
En fait la taille du fichier ne doit pas dépasser un certain nombre de lignes.
Donc comme on doit avoir 2 fichiers minimums, mon chef m'a fortement concseillé de faire un dispatche des données entre les 2 fichiers.
Mais par la suite si mon nombre de fichiers augmentent à cause de données trop nombreuses mon système ne fonctionnera plus et je serais obligée de changer ma procédure.
C'est pour cela que je voudrais dès maintenant le prévoir.

Définir les critères de mon obligation?
Ce'st à dire?
claralavraie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2006, 11h01   #4
Membre régulier
 
Inscription : mars 2004
Messages : 106
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2004
Messages : 106
Points : 94
Points : 94
Envoyer un message via MSN à insupien Envoyer un message via Yahoo à insupien Envoyer un message via Skype™ à insupien
Citation:
Envoyé par claralavraie
En fait la taille du fichier ne doit pas dépasser un certain nombre de lignes.
Donc comme on doit avoir 2 fichiers minimums, mon chef m'a fortement concseillé de faire un dispatche des données entre les 2 fichiers.
Mais par la suite si mon nombre de fichiers augmentent à cause de données trop nombreuses mon système ne fonctionnera plus et je serais obligée de changer ma procédure.
C'est pour cela que je voudrais dès maintenant le prévoir.

Définir les critères de mon obligation?
Ce'st à dire?
donc c une obligation, au fait de taille tout simplement si j ai bien compris.

Maintenant, il faut orienter ta procedure dans ce sens et oublier les paires et impaires.

donc, fixe toi une variable de nombre max de lignes et fais ta boucle dans ce sens!
__________________
Amine
insupien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2006, 11h07   #5
Membre habitué
 
Inscription : décembre 2005
Messages : 455
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 455
Points : 127
Points : 127
Autre solution:
j'ai un variable représentant le nombre maximum de fichiers.
je divise mon nombre de données à insérer dans mes fichiers par mon nombre de fichiers.
Cela peut fonctionner non?
claralavraie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2006, 11h13   #6
Membre régulier
 
Inscription : mars 2004
Messages : 106
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2004
Messages : 106
Points : 94
Points : 94
Envoyer un message via MSN à insupien Envoyer un message via Yahoo à insupien Envoyer un message via Skype™ à insupien
Citation:
Envoyé par claralavraie
Autre solution:
j'ai un variable représentant le nombre maximum de fichiers.
je divise mon nombre de données à insérer dans mes fichiers par mon nombre de fichiers.
Cela peut fonctionner non?

oui ca peut fonctionner mais dans ce cas ta pas de taille max du fichier (donc nombre max de lignes par fichier) !!
__________________
Amine
insupien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2006, 15h13   #7
Membre habitué
 
Inscription : décembre 2005
Messages : 455
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 455
Points : 127
Points : 127
j'avais pensé à faire cela, une variable max_ligne.
Mais j'ai une table dans laquelle se trouve toutes mes données.
Imaginons que mon nombre max de lignes soit de 13000/fichier.
Dans ces 13000 lignes , il y en a 4 que je construit et ensuite selon le nombre de lignes prises de la table je dois faire différent compteurs.
Par exemple si j'insère 4000 lignes, selon les informations contenues dans ces données je rajoute 1000 lignes en plus. mais des fois ça peut être 2000 lignes en plus etc...
donc je ne peux jamais savoir ou je dois stopper..
après je peux me fixer une limite. je ne prends pas plus de 6000 lignes.
comme ça, ça me laisse une marge, mais bon si je n'ai que 5000 lignes et que je dois remplir 2 fichiers alors que je fixais une limite à 6000 lignes, il ne va me remplir qu'un fichier...
C'est donc plus simple ma solution non?
claralavraie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2006, 15h21   #8
Membre régulier
 
Inscription : mars 2004
Messages : 106
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2004
Messages : 106
Points : 94
Points : 94
Envoyer un message via MSN à insupien Envoyer un message via Yahoo à insupien Envoyer un message via Skype™ à insupien
Citation:
Envoyé par claralavraie
j'avais pensé à faire cela, une variable max_ligne.
Mais j'ai une table dans laquelle se trouve toutes mes données.
Imaginons que mon nombre max de lignes soit de 13000/fichier.
Dans ces 13000 lignes , il y en a 4 que je construit et ensuite selon le nombre de lignes prises de la table je dois faire différent compteurs.
Par exemple si j'insère 4000 lignes, selon les informations contenues dans ces données je rajoute 1000 lignes en plus. mais des fois ça peut être 2000 lignes en plus etc...
donc je ne peux jamais savoir ou je dois stopper..
après je peux me fixer une limite. je ne prends pas plus de 6000 lignes.
comme ça, ça me laisse une marge, mais bon si je n'ai que 5000 lignes et que je dois remplir 2 fichiers alors que je fixais une limite à 6000 lignes, il ne va me remplir qu'un fichier...
C'est donc plus simple ma solution non?

Si c'est comme ca je trouve que ta solution ferait l affaire, mais je crois que t aura le mm soucis pour remplir tes fichiers!!!
__________________
Amine
insupien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2006, 15h28   #9
Membre habitué
 
Inscription : décembre 2005
Messages : 455
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 455
Points : 127
Points : 127
Oui c'est ce que je crains...
avant de remplir mes fichiers, je remplis toutes ces données dans une table temporaire....
peut être faudrait il qu'à la fin je fasse une boucle sur cette table.
cela eviterait peut être de depasser le nombre de lignes maximum....
claralavraie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2006, 15h38   #10
Membre régulier
 
Inscription : mars 2004
Messages : 106
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2004
Messages : 106
Points : 94
Points : 94
Envoyer un message via MSN à insupien Envoyer un message via Yahoo à insupien Envoyer un message via Skype™ à insupien
Citation:
Envoyé par claralavraie
Oui c'est ce que je crains...
avant de remplir mes fichiers, je remplis toutes ces données dans une table temporaire....
peut être faudrait il qu'à la fin je fasse une boucle sur cette table.
cela eviterait peut être de depasser le nombre de lignes maximum....
oui je crois que si tu fais une boucle te permettant de remplir une ligne par fichier cela resoudra le probleme sauf que qd tu atteindra le max de tous les fichiers tu sera obligée de rechanger ta procedure!

juste un rappel, c pour des raisons de backup que tu dispatches?!
__________________
Amine
insupien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2006, 15h43   #11
Membre habitué
 
Inscription : décembre 2005
Messages : 455
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 455
Points : 127
Points : 127
ce sont des fichiers qui sont envoyés sur des serveurs et sont traités la nuit..
Ainsi les personnes concernées ont toutes les informations de la veille...

Donc bref cela ne resoud en rien mon problème...
bon je vais continuer à chercher...
claralavraie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2006, 15h44   #12
Membre régulier
 
Inscription : mars 2004
Messages : 106
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2004
Messages : 106
Points : 94
Points : 94
Envoyer un message via MSN à insupien Envoyer un message via Yahoo à insupien Envoyer un message via Skype™ à insupien
Citation:
Envoyé par claralavraie
ce sont des fichiers qui sont envoyés sur des serveurs et sont traités la nuit..
Ainsi les personnes concernées ont toutes les informations de la veille...

Donc bref cela ne resoud en rien mon problème...
bon je vais continuer à chercher...
Bon courage
__________________
Amine
insupien est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h34.


 
 
 
 
Partenaires

Hébergement Web