IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

[PL/SQL] Création fichiers txt chez l'utilisateur


Sujet :

Oracle

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 81
    Points : 77
    Points
    77
    Par défaut [PL/SQL] Création fichiers txt chez l'utilisateur
    Bonjour,
    Je désir créer un package PL/SQL qui contiendra les procédures et fonctions qui permettra de créer un certains nombre de fichier textes (.txt) à partir de données contenues dans la Base de Données Oracle.
    L’utilisateur (client avec navigateur internet) entrera un certains nombre de paramètres via un formulaire Web (voir package HTP) et ma procédure de création de fichier texte sera alors exécutée.
    Pour résumer, le but de tout cela est de :
    Fournir à l’utilisateur des fichiers de labellisation au format texte (crée avec les données de la BD Oracle) qu’il utilisera ensuite dans des fichiers statistiques (SPSS, SAS) !
    Jusque là, le principe à l’air ok !
    Ma question est relative à la création des fichiers textes. J’ai vu sur ce magnifique site que l’on pouvait utiliser le package UTL_FILE pour la création et écriture de fichiers. MAIS, d’après ce que j’ai compris, ces fichier txt seraient crées sur le serveur (de BD ou d’application ?). Moi ce que je veux, c’est que ces fichiers soient crées chez l’utilisateur (le client) !
    Voilà, merci d’avance du coup de pouce !

    Pour infos complémentaire :
    Client : Naviguateur Internet
    Server d’application : Oracle Application Server (v.9.0.4)
    Server de base de données : Oracle 9i

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    UTL_FILE ne peut générer des fichiers que sur la machine qui héberge le serveur de bases de données. Dans votre cas, il faudrait peut-être générer simplement le fichier dans une page HTML qui ensuite peut être sauvegardée par l'utilisateur depuis le navigateur ?

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 81
    Points : 77
    Points
    77
    Par défaut
    Merci de votre réponse Pifor.
    J'avais pensé à cette possibilité. Le problème est que le nombre de fichier à générer est assez conséquent. Dons, si l'utilisateur doit enregistrer les pages HTML en format txt un à un, ça va être trop ennuyant pour lui (et comme le client est roi, ...) !!!
    Peut-être que je devrais "simplement" faire une petite appli Access qui se connecte (via ODBC) sur ma BD Oracle? ça c'est possible.
    Mais je voualis savoir si c'est possible ce faire cela via une appli Web !? ...

  4. #4
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    La génération du fichier sur le serveur n pose aucun problème et il est très facile de le récupérer sur le client via http:// ou ftp://

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par SheikYerbouti
    La génération du fichier sur le serveur n pose aucun problème et il est très facile de le récupérer sur le client via http:// ou ftp://
    ça pose parfois des problèmes de sécurité et aussi de collaboration entres les DBA et les utilisateurs/développeurs.

    ...

    La méthode Oracle7 (avant UTL_FILE) est de remplir une table avec des inserts, et ensuite d'en lister le contenu avec le client. C'est toujours une de mes méthodes favorite... je trouve que UTL_FILE est contraire aux principes de sécurité (l'application n'a rien a faire sur mon db serveur, encore moins avoir le droit d'écrire et d'effacer des fichiers avec les privilèges de l'utilisateur oracle)


  6. #6
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Un ou plusieurs répertoires sont déclarés sur le serveur d'appli (DIRECTORIES) aptes pour écrire et/ou lire.
    La sécurité n'est pas mise à mal si elle est bien encadrée.

    Rappelons bien à tout le monde qu' UTL_FILE ne peux lire/écrire que dans ces répertoires clairement définis.

  7. #7
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    ouais, bien sûr, c'est un peu une question de principe, le méchant DBA que je suis ne laisse personne accéder à son serveur, et surtout ne démarre pas de serveur ftp/http sur le serveur

    Oracle recommende par ailleurs d'enlever le droit d'exécution sur UTL_FILE de PUBLIC
    Check List: Steps to Make Your Database Secure from Attacks

    Il y a eu historiquement un certain nombre de bugs sur UTL_FILE. Par exemple, dans Oracle 8i, un lien symbolique dans /tmp te permettais d'effacer la Tablespace SYSTEM. Juste pour rire...

    L'administration est aussi propice à une "sécurité plus trop encadrée"... Si tu veux chaque jour un nouveau répertoire (style avec la date), ou que tu as des centaines de milliers de fichiers, il est fort à parier que tu "automatiseras" l'administration de "CREATE DIRECTORY", ce qui sera alors une porte ouverte à toute sorte d'abus.

    Bon, ça ne me plait pas, mais bien sûr c'est une question de goût

  8. #8
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par SheikYerbouti
    Un ou plusieurs répertoires sont déclarés sur le serveur d'appli (DIRECTORIES) aptes pour écrire et/ou lire..
    le problème est que les répertoires sont sur le serveur de bases de données, pas sur le serveur d'appli, non?

  9. #9
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    une alternative à ftp pour NPortmann est d'envoyer les fichiers par email ...
    un peu contraire à mes principes, mais si ça peut rendre service

  10. #10
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 81
    Points : 77
    Points
    77
    Par défaut
    Citation Envoyé par laurentschneider
    ça pose parfois des problèmes de sécurité et aussi de collaboration entres les DBA et les utilisateurs/développeurs.
    Effectivement, je devrai demander au DBA (c'est déjà mal barré ) qu'il définisse un répertoire ou je peux créer mes fichiers. Ensuite, il faudrai m'assurer que je puisse les récupérer.
    En plus, cette manière de faire en deux phases n'est pas top pour l'utilisateur final!

    Si je fais cela avec Access (en me connectant avec ODBC) je peux créer les fichiers txt directement chez le client. Tout est fait en une seul phase et l'utilisateur final est content!

    Je pense donc partir sur la 2ème solution!

  11. #11
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Citation Envoyé par laurentschneider
    le problème est que les répertoires sont sur le serveur de bases de données, pas sur le serveur d'appli, non?
    Parfaitement

  12. #12
    Membre éclairé Avatar de plabrevo
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Points : 674
    Points
    674
    Par défaut
    Pourquoi ne pas stocker ce fichier sur un folder iFS (Oracle Internet File System):

    http://www.oracle.com/technology/doc.../ifs_arch.html

    Cf la note Metalink 353677.1 pour voir un exemple d'appel depuis PL/SQL.

  13. #13
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Points : 95
    Points
    95
    Par défaut
    Citation Envoyé par laurentschneider
    ouais, bien sûr, c'est un peu une question de principe, le méchant DBA que je suis ne laisse personne accéder à son serveur, et surtout ne démarre pas de serveur ftp/http sur le serveur
    Tu vas faire passer les DBAs pour de méchants & vilains canards !!!
    C'est vrai, il ne faut pas faire n'importe quoi, mais en n'utilisant aucunes des possibilités d'ORACLE on passe à coté de tout ce qui fait sa puissance. UTL_FILE bien employé avec des répertoires ORACLE bien ciblés reste sécurisé.

    @+,
    NicK.

  14. #14
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    +1 je trouve dommage de se passer d'un tel outil... surtout qu'avec les DIRECTORIES c'est beaucoup plus simple à sécuriser

Discussions similaires

  1. [E-02] Requetes SQL sur fichier .txt delimité par ";"
    Par -={-_-}=- dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 05/11/2008, 15h42
  2. Réponses: 5
    Dernier message: 22/01/2008, 12h25
  3. Création fichier txt en javascript
    Par xone23 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/07/2007, 23h03
  4. [Excel] Enregistrement d'un fichier excel chez l'utilisateur
    Par papyzapp dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 15/06/2006, 12h01
  5. Donnee excel pour requete sql dans fichier txt ou doc
    Par Yogi_01 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/04/2006, 10h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo