|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : avril 2007 Messages : 95 ![]() |
Bonjour à tous
Je fais quelques tests avec UTL_FILE mais je ne parviens pas à mes fins, alors je me permets de venir vous demander votre aide. Je précise que suis débutant en PL/SQL. Je définis ma procédure comme suit : Code sql :
La procédure se crée sans erreur sous SQL*Plus. Je l'exécute ensuite de la manière suivante : Et SQL*Plus m'affiche "invalid operation"... C'est donc une exception UTL_FILE.INVALID_OPERATION qui est levée. Mais je ne vois vraiment pas pourquoi. Le chemin vers le répertoire est correct. Le fichier cible existe et il me semble que la commande GRANT assure les droits en écriture sur ce répertoire au user courant oracle. Je ne sais plus trop où chercher... Une idée ? Merci ! |
||
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Arnaud Inscription : octobre 2002 Messages : 56 ![]() |
Bonjour,
Code :
GRANT READ,WRITE ON DIRECTORY mydir TO user; Ceci grant l'accès en lecture/écriture au directory Oracle "mydir" à l'utilisateur qui exécute le bloc. Cependant, l'objet "mydir" n'est qu'un pointeur vers un dossier du système de fichier. Tu peux définir les accès VIA ORACLE avec des grants, mais tout ceci est indépendant des droits d'accès vers le répertoire définis sur le système de fichier... En particulier, l'utilisateur OS qui fait tourner la base doit avoir le droit d'accès en lecture écriture sur le répertoire "G:\7000 DEVNAT\7300 LCBHoS\7310 Projets-Maintenances-Etudes\01-Projets\MOA-MOE\P-Interface LCB-SINERGI\Scripts de reprise des données\01-DEV220\01-ZCN3". Ceci doit être fait au niveau OS (windows ou unix), et ne peut pas être fait depuis la base. [Edit] Si la base à effectivement accès en R/W au répertoire de l'OS, en effet, comme l'a dit McM, savoir où ça plante pourrait déjà aider un peu
__________________
Tuning and optimization are not a fix to a bad design. A good design is a fix to a bad design. |
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 440 ![]() |
La base du débug : A quelle ligne de ta procédure l'erreur est-elle levée ?
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : avril 2007 Messages : 95 ![]() |
Merci beaucoup pour votre réactivité !
Je me mets en relation avec notre DB admin pour tirer au clair cette histoire de droits. |
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() |
as tu vérifié la valeur du parametre d'intialisation UTL_FILE
la commande... |
|
|
01
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : avril 2007 Messages : 95 ![]() |
merci à tous pour vos réponses, mais suite à une discussion avec un expert Oracle nous allons mettre en place une autre solution pour résoudre notre problème
je continuerai peut-être à fouiller quand j'aurai un peu de temps bonne journée à tous |
|
|
00
|
|
|
#7 |
![]() Inscription : décembre 2002 Messages : 2 387 ![]() |
Ca serait une bonne chose de vérifier vos propositions (UTL_FILE n'existe pas en tant que paramètre, c'est UTL_FILE_DIR), mais aussi de les expliquer.
Notre ami utilise la méthode avec DIRECTORY, qui est 100 % indépendante de UTL_FILE_DIR.
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
20
|
|
|
#8 |
|
Membre éclairé
![]() |
oui c'est bien UTL_FILE_DIR.
DIRECTORY ne marche pas sans donner l'autorisation d'acces au disque via |
|
|
01
|
|
|
#9 |
![]() ![]() |
Non c'est complètement faux, il n'y a aucune allusion à UTL_FILE_DIR dans la documentation Oracle sur la commande CREATE DIRECTORY, notamment dans les prérequis :
http://download.oracle.com/docs/cd/E...htm#SQLRF01207
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#10 |
|
Membre éclairé
![]() |
UTL_FILE_DIR n'influe pas sur la creation de repertoire logique de Oracle mais la manipuilation de ce repertoire necessite
|
|
|
02
|
|
|
#11 | |
![]() Inscription : décembre 2002 Messages : 2 387 ![]() |
Citation:
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
|
00
|
|
|
#12 |
![]() Salim Développeur et DBA Oracle Inscription : octobre 2006 Messages : 872 ![]() |
Salut,
Deux méthodes pour utiliser utl_file : La première consiste : 1- créer les directory (MYDI_DATA, MYDIR_LOG et MYDIR_BIN) selon le besoin sur ton serveur de base de données utilisé. 2- donner le grant read,write on directory to user; La deuxième : 1- Utiliser UTL_FILE_DIR http://www.sc.ehu.es/siwebso/KZCC/Or...tparams223.htm La deuxième méthode parfois considérée comme un trou de sécurité (UTL_FILE_DIR). Cordialement Salim.
__________________
Publications: http://schelabi.developpez.com/ |
|
|
00
|
|
|
#13 | ||
![]() ![]() |
Extrait de la note Metalink 206272.1, récupérée ici.
Citation:
Citation:
__________________
Email : http://scr.im/waldar |
||
|
00
|
Copyright © 2000-2012 - www.developpez.com