Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
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 14/12/2007, 13h23   #1
Membre régulier
 
Avatar de magicbisous-nours
 
Inscription : octobre 2005
Messages : 201
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 201
Points : 82
Points : 82
Envoyer un message via MSN à magicbisous-nours
Par défaut tant que non fin de fichier

Bonjour, je voudrais savoir s'il existe un moyen en PL/SQL de faire une boucle genre TantQue(!EOF)....
On m'a conseillé une gestion d'exception mais s'il existe quelque chose de plus 'propre'....
merci d'avance
magicbisous-nours est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2007, 13h33   #2
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 453
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 453
Points : 4 215
Points : 4 215
Non, voir la doc
Citation:
/*
** GET_LINE - Get (read) a line of text from the file
**
** IN
** file - File handle (open in read mode)
** len - input buffer length, default is null, max is 32767
** OUT
** buffer - next line of text in file
** EXCEPTIONS
** no_data_found - reached the end of file
** value_error - line to long to store in buffer
** invalid_filehandle - not a valid file handle
** invalid_operation - file is not open for reading
** read_error - OS error occurred during read
** charsetmismatch - if the file is open for nchar data.
*/
PROCEDURE get_line(FILE IN file_type,
buffer OUT VARCHAR2,
len IN BINARY_INTEGER DEFAULT NULL);
PRAGMA RESTRICT_REFERENCES(get_line, WNDS, RNDS, WNPS, RNPS, TRUST);
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2007, 14h57   #3
Membre expérimenté
 
Inscription : juillet 2007
Messages : 495
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 495
Points : 585
Points : 585
Je pense que tu peux trouver ton bonheur avec le package UTL_FILE, en utilisant la fonction GET_LINE qui génère l'exception NO_DATA_FOUND lorsque la fin du fichier est atteinte. Il suffit alors de gérer l'exception au sein d'un bloc PL/SQL emboîté dans la procédure elle-même afin de pouvoir continuer à exécuter des instructions dans cette procédure, comme montré dans l'exemple ci-dessous :

http://sheikyerbouti.developpez.com/...age=Chap8#L8.4
__________________
Des chercheurs qui cherchent, on en trouve, mais des chercheurs qui trouvent, on en cherche !
dgi77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2007, 19h54   #4
Membre confirmé
 
Inscription : août 2005
Messages : 270
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 270
Points : 294
Points : 294
Citation:
Envoyé par magicbisous-nours Voir le message
Bonjour, je voudrais savoir s'il existe un moyen en PL/SQL de faire une boucle genre TantQue(!EOF)....
On m'a conseillé une gestion d'exception mais s'il existe quelque chose de plus 'propre'....
merci d'avance
Tu as ta réponse plus haut, j'interviens juste pour dire que les exceptions, c'est très "propre"! C'est même un des mécanismes fondamentaux les plus beau de PL (en provenance directe d'Ada) et repris par tout les langages "modernes".
jmguiche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 07h04   #5
Membre régulier
 
Avatar de magicbisous-nours
 
Inscription : octobre 2005
Messages : 201
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 201
Points : 82
Points : 82
Envoyer un message via MSN à magicbisous-nours
ok merci.....j'aurais aimé quelque chose d'autre......mais tant pis merci beaucoup à tous!!
magicbisous-nours est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h44.


 
 
 
 
Partenaires

Hébergement Web