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

Administration Oracle Discussion :

Créer un directory sur son PC et non pas sur le serveur Oracle


Sujet :

Administration Oracle

  1. #1
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut Créer un directory sur son PC et non pas sur le serveur Oracle
    Bonjour les forumeurs,

    J'ai le souci suivant : je veux insérer un document word dans une colonne de type BLOB mais ce document se trouve sur mon PC.
    J'ai créé un directory dans ma base mais ce directory pointe vers un répertoire client (donc de mon PC) et non pas vers un répertoire du serveur Oracle car je n'ai pas accès au serveur Unix.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE TABLE TEST_DD_BLOB ( TEST_DD_BLOB_ID NUMBER NOT NULL, TEST_DD_BLOB_NAME BLOB, CONSTRAINT PK_TEST_DD_BLOB PRIMARY KEY(TEST_DD_BLOB_ID));
     
    create or replace directory TEST_DD_DIRECTORY as 'P:\';
    Là où ça coince c'est dans mon programme PL/SQL et sur la fonction dbms_lob.fileopen car Oracle me dit .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    DECLARE
    	l_blob    blob;
    	l_bfile    bfile;
    procedure load_a_file( p_id in number, p_filename in varchar2 )
    IS
    begin
    	insert into TEST_DD_BLOB values ( p_id, empty_blob() )
    	returning TEST_DD_BLOB_NAME into l_blob;
     
     	l_bfile := bfilename( 'TEST_DD_DIRECTORY', p_filename );
    	dbms_lob.fileopen( l_bfile, dbms_lob.file_readonly );
    	dbms_lob.loadfromfile( l_blob, l_bfile,	dbms_lob.getlength( l_bfile ) );
    	dbms_lob.fileclose( l_bfile ); 
    end;
     
    BEGIN
    load_a_file(1, 'TEST_Blob_Oracle_DBlink.docx');
    END;
    / 
     
    ORA-22288: échec de l'opération FILEOPEN sur le fichier ou le LOB
    No such file or directory
    ORA-06512: à "SYS.DBMS_LOB", ligne 805
    ORA-06512: à ligne 11
    ORA-06512: à ligne 17
    En cherchant sur le net j'ai compris que le directory créé DEVAIT être sur le serveur Oracle.
    Problème : je n'ai pas accès au serveur Unix et c'est beaucoup trop lourd d'un point de vue procédure de déranger les gens ayant cet accès pour leur demander de m'aider dans mes tests qui sont tout sauf prioritaires pour eux

    Existe-t-il un moyen de contourner cette obligation? Par avance merci pour vos réponses.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  2. #2
    Membre confirmé
    Homme Profil pro
    xxxxxxxxx
    Inscrit en
    Avril 2015
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : xxxxxxxxx

    Informations forums :
    Inscription : Avril 2015
    Messages : 393
    Points : 552
    Points
    552
    Par défaut Créer un directory sur son PC et non pas sur le serveur Oracle
    Voilà ce que je te propose :
    - vérifier bien que tu as définies les privileges acces sur l'objet directory càd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     grant read, write on nom_directory to public ;
    - Est-ce que le poste client a un OS windows, si telle est le cas, sur le serveur unix
    il doit un avoir une fonctionnalité sur les correspondances des chemins d'accès aux
    répertoir entre unix et windows ??
    - Verifier bien si le repertoire P:\ existe bien sur le poste client
    - revoir ton code de ta procedure, manque t-il qqchoses ???

  3. #3
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Je te remercie pour tes conseils dell68 mais qu'entends-tu par "Est-ce que le poste client a un OS windows, si telle est le cas, sur le serveur unix il doit un avoir une fonctionnalité sur les correspondances des chemins d'accès aux répertoir entre unix et windows ??"

    Concrètement, sachant que je n'ai pas accès au serveur Unix, comment je peux vérifier cela?
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  4. #4
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Citation Envoyé par dell68 Voir le message
    - Est-ce que le poste client a un OS windows, si telle est le cas, sur le serveur unix
    il doit un avoir une fonctionnalité sur les correspondances des chemins d'accès aux
    répertoir entre unix et windows ??
    Il suffit d'installer un serveur samba sous unix et déclarer le DIRECTORY vers un des répertoire déclaré dans samba (pas forcément sur la même machine qu'ORACLE)
    EDIT : Mais pour cela il faut en faire un minimum sous unix donc pas de solutions !
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  5. #5
    Membre confirmé
    Homme Profil pro
    xxxxxxxxx
    Inscrit en
    Avril 2015
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : xxxxxxxxx

    Informations forums :
    Inscription : Avril 2015
    Messages : 393
    Points : 552
    Points
    552
    Par défaut Créer un directory sur son PC et non pas sur le serveur Oracle
    Est-ce que ceci : load_a_file(1, 'TEST_Blob_Oracle_DBlink.docx'),
    devait-il pas s'écrire load_a_file(1, 'P:\TEST_Blob_Oracle_DBlink.docx') ?
    A propos de la fonctionnalité, voir la réponse de Garuda (serveur samba sous unix) .

Discussions similaires

  1. Background sur les caractères et non pas sur le conteneur
    Par kaching dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 03/06/2014, 09h28
  2. [AC-2003] operation sur les ligne et non pas sur les colonnes
    Par omarnigth dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 21/11/2011, 21h25
  3. execution sur l'emulateur mais non pas sur le Pocket PC
    Par inter_amine dans le forum Windows Mobile
    Réponses: 2
    Dernier message: 08/06/2007, 09h35
  4. [HTML] boucle sur une variable et non pas un tableau
    Par delma dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/11/2006, 15h03

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