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 29/03/2011, 15h22   #1
Invité régulier
 
Homme
Inscription : mars 2011
Messages : 18
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 20
Localisation : France

Informations forums :
Inscription : mars 2011
Messages : 18
Points : 6
Points : 6
Par défaut Fonctionnement d' UTL_FILE

Bonjour à tous,

Je travail actuellement sur une application développée en VB.net et Asp et relié à une base oracle 8i. J'ai besoin d'écrire certaines données dans un fichier texte à partir de procédures PL/SQL. Après quelques recherches je suis tombé sur le package Utl_File qui semble correspondre à mes besoins, j'ai donc essayé de le mettre en pratique... Je parviens à compiler et exécuter sans problème particulier mais il ne se passe rien.

Le fichier texte que ma procédure est censée me créer et me remplir n'existe pas. J'ai également vu qu'avant de se servir d'UTL_FILE on a besoin de créer un directory et de lui attribuer le droit en écriture.

Code :
1
2
SQL> CREATE OR REPLACE DIRECTORY MONREP AS 'E:/SQL/in' ;
SQL> GRANT READ, WRITE ON DIRECTORY MONREP TO PUBLIC ;
Ne comprenant pas son utilité je ne l'ai pas fait. Je ne comprend pas à quoi ce Directory sert....à moins que le fichier texte créer ne sois disponible que dans la base oracle donc côté serveur ?? Merci de bien vouloir éclairer ma jeune lanterne !

Voici mon code:

Code :
1
2
3
4
5
6
7
8
9
[...]
f UTL_FILE.FILE_TYPE;
BEGIN
f := UTL_FILE.FOPEN('C:\test' , 'test_log.txt', 'a');
[...]
UTL_FILE.put_line(f, 'Nombre de Vans Chargés : ' || cursLigneIMP$%ROWCOUNT);
[...]
UTL_FILE.FCLOSE (f);
END;
PS: Ce qu'il y a au niveau des [...] n'est pas utile donc je ne l'ai pas mit.
Ro0ys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 15h26   #2
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 808
Points : 5 808
Le code PL/SQL s’exécutant coté serveur il est tout à fait normal que le fichier est crée quelque part sur le serveur de base des données. Est-ce que ça vous convient ?
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 15h29   #3
Invité régulier
 
Homme
Inscription : mars 2011
Messages : 18
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 20
Localisation : France

Informations forums :
Inscription : mars 2011
Messages : 18
Points : 6
Points : 6
Oui c'est bien ce qu'il me semblait.

J'en conclut donc qu'il est impossible d'écrire dans un fichier texte côté client avec cette méthode ? (UTL_FILE)
Ro0ys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 15h58   #4
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 808
Points : 5 808
Rien n’est impossible… Mais souvent soit ce n’est pas pratique soit c’est une usine à gaz soit…
Mais en VB.net écrire des données dans un fichier n’est pas si compliqué. Donc pourquoi voulez-vous employer du PL/SQL coté serveur ?
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 16h03   #5
Invité régulier
 
Homme
Inscription : mars 2011
Messages : 18
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 20
Localisation : France

Informations forums :
Inscription : mars 2011
Messages : 18
Points : 6
Points : 6
Justement, je pensais à la base le réaliser en VB. J'ai d'ailleurs posté à ce sujet hier après-midi dans la partie VB de Developpez.net ==> http://www.developpez.net/forums/d10...cedure-pl-sql/ ! Mais je n'ai pas obtenu de réponses, j'ai donc essayer de réfléchir à une autre solution ! Comme les données dont j'ai besoin sont disponibles dans le PL/SQL je pensais que ce serait plus facile par là mais apparament non. Je vous met le lien au cas où vous auriez quelques notions en VB ^^
Ro0ys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 16h25   #6
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 808
Points : 5 808
Ca fait quelques bonnes années depuis que je n’ai pas touché au VB.
Considérez votre ref_cursor comme un Select. Vous devez coder de la même façon, sauf qu’au lieu de exécuter le select qui renvoie un recordset (ou notion similaire) vous exécutez une procédure.
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 16h31   #7
Invité régulier
 
Homme
Inscription : mars 2011
Messages : 18
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 20
Localisation : France

Informations forums :
Inscription : mars 2011
Messages : 18
Points : 6
Points : 6
D'accord mais qu'entendez-vous par "comme un Select" ??
Ro0ys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 18h50   #8
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 808
Points : 5 808
Regardez How To call Stored Procedure using Ref Cursor from VB 6.0
mnitu 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 20h44.


 
 
 
 
Partenaires

Hébergement Web