|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : février 2006 Messages : 41 ![]() |
Bonjour,
J'ai crée une série de procédure avec l'utilisation du package utl_file Tout marchait nickel : fopen, création de fichier, écriture etc.... Suite à un incident sur ma base TEST1; j'ai du redémarrer service/listerner... Depuis mes procédures ne marchent plus : utl_file lance une exception: Error -29280: ORA-29280: chemin de répertoire non valide Pourtant aucun droit d'accès n'a changé entre temps... Sur ce même serveur, j'ai une base TEST2 (moins fournie en données, je dois travailler sur TEST1 malgré tout), j'ai testé une même procédure avec utl_file => tout marche parfaitement bien... Comment réactiver le package utl_file sur TEST1? J'ai cru comprendre qu'il faut paramétrer dans le fichier init<SID>.ora, mais j'ai plusieurs fichier init*.ora, mais aucun initTEST1.ora... Merci pour votre aide |
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() Inscription : juillet 2007 Messages : 495 ![]() |
Important : quelle est ta version d'Oracle ?
A tous les coups, la variable UTL_FILE_DIR a été modifiée à la main sans que cette modif ait été reportée dans le init.ora => au premier redémarrage de la base, la modif. est écrasée...
__________________
Des chercheurs qui cherchent, on en trouve, mais des chercheurs qui trouvent, on en cherche ! |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : février 2006 Messages : 41 ![]() |
C'est une version 9.2.0.8.0
Ou ce trouve les fichier init.ora? Sont t'ils éditables via notepad? Merci |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 1 497 ![]() |
Si tu es sur unix il doit être dans $ORACLE_HOME/dbs, son nom doit être initTEST1.ora. Tu peux l'éditer à la main pour modifier le paramètre utl_file_dir et redémarrer ta base pour que ça soit pris en compte
Mais attention à vérifier que tu n'utilises pas un spfile qui serait prioritaire par rapport à ton pfile au démarrage de la base |
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : avril 2002 Messages : 103 ![]() |
Attention, si tu as un spfile, il ne faut pas le modifier à la main.
Applique la modification à ta base en étant loggué en tant que sysdba et précise que tu veux appliquer la modification à la fois à l'instance et au fichier de conf à l'aide de l'instruction SCOPE=BOTH. Fait quelques recherches sur les fichiers d'init, tu devrait trouvé ton bonheur |
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : février 2006 Messages : 41 ![]() |
Bonjour merci pour vos réponses
J'ai fais une recherche sur le paramétrage de utl_file_dir avec la commande: SELECT value FROM v$parameter WHERE name LIKE '%utl_file_dir%'; > D:\Partage\Olivier J'ai essayé de faire un ref_fichier := UTL_FILE.FOPEN('D:\Partage\Olivier','resultat.txt','w'); (avant j'écrivais dans D:\temp') et la ca marche, le fichier est bien crée, je n'ai plus l'erreur Error -29280: ORA-29280: chemin de répertoire non valide faut il que je lance, en admin system, la commande : ALTER SYSTEM SET UTL_FILE_DIR=* Afin d'avoir SELECT value FROM v$parameter WHERE name LIKE '%utl_file_dir%'; > * Pour créer un fichier n'importe où avec UTL_FILE.FOPEN J'ai peur de tout casser dans ma base
|
|
|
00
|
|
|
#7 |
|
Membre expérimenté
![]() Inscription : juillet 2007 Messages : 495 ![]() |
Je ne pense pas que ça marche, tu es obligé de spécifier un à un, et explicitement, chaque répertoire dans lequel tu veux accéder.
Tu ne peux même pas accéder à un sous-répertoire d'un répertoire déclaré sans déclarer le sous-répertoire également.
__________________
Des chercheurs qui cherchent, on en trouve, mais des chercheurs qui trouvent, on en cherche ! |
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() Inscription : février 2006 Messages : 41 ![]() |
Je me suis connecté en admin et j'ai fais la commande:
ALTER SYSTEM SET UTL_FILE_DIR='*' SCOPE=spfile J'ai redémarré la base, et maintenant, je peux faire avec succès: ref_fichier := UTL_FILE.FOPEN(xxx,'resultat.txt','w') avec xxx le répertoire de mon choix... sans avoir l'erreur: Error -29280: ORA-29280: chemin de répertoire non valide par contre je voudrais rebondir sur ton tout premier message: "A tous les coups, la variable UTL_FILE_DIR a été modifiée à la main sans que cette modif ait été reportée dans le init.ora => au premier redémarrage de la base, la modif. est écrasée..." Est-ce que "ALTER SYSTEM SET UTL_FILE='*' SCOPE=spfile" est ce que tu appeles une modification à la main? Je vais rebooter la base pour voir si je perd mon paramétrage '*' pour UTL_FILE_DIR merci pour vos aides réspectives. |
|
|
00
|
|
|
#9 |
|
Membre expérimenté
![]() Inscription : juillet 2007 Messages : 495 ![]() |
Autant pour moi donc (pour le UTL_FIL_DIR = '*'), il me semblait... peut-être en 8i...
Ce que je voulais dire, c'était sans le SCOPE=spfile. Là, je ne sais pas, mais tiens-nous au courant après ton reboot...
__________________
Des chercheurs qui cherchent, on en trouve, mais des chercheurs qui trouvent, on en cherche ! |
|
|
00
|
|
|
#10 |
|
Nouveau Membre du Club
![]() Inscription : avril 2002 Messages : 103 ![]() |
En fait on peut dire qu'il y a deux types de configuration :
- Statique via le fichier initSID.ora - Dynamique (via des commandes du type "ALTER") Et il existe deux type de fichier d'init : - initSID.ora : fichier à editer manuellement - spfileSID.ora : fichier à ne surtout pas éditer manuellement Si ta base est démarré avec un fichier de conf de type initSID.ora, et si tu veux modifier ton paramètrage, tu as plusieurs solutions : - Tu modifie le fichier d'init et tu redémarre ta base pour faire prendre en compte les modifs (à chaque redémarrage de la base, elles le seront) - Tu modifie à la volée les paramètres à l'aide de commandes mais au redémarrage de la base, tout est perdu - Tu fait les deux (ce qui ne t'oblige pas à redémarrer la base) mais là danger car au redémarrage tu n'es pas sur d'avoir une conf exactement identique. Si ta base est démarré avec un fichier de type spfile, tu execute les commandes à la volée et tu spécifie SCOP=BOTH pour que Oracle reporte automatiquement les modif. de la conf dans le fichier d'init. Des infos sur le fonctionnement du spfile : http://www.trivadis.com/Images/utili...tcm18-7379.pdf http://www.developpez.net/forums/arc...hp/t-9689.html Voilou, en espérant avoir été clair |
|
|
00
|
|
|
#11 |
|
Invité régulier
![]() Inscription : février 2006 Messages : 41 ![]() |
Merci pour ces explications cheprod
De mon coté j'ai redémarré la base, et j'ai toujours: SELECT value FROM v$parameter WHERE name LIKE '%utl_file_dir%'; > * Donc je peux utiliser utl_file sans avoir l'erreur Error -29280: ORA-29280: chemin de répertoire non valide Merci pour vos aides et retours |
|
|
00
|
|
|
#13 |
|
Membre expérimenté
![]() Inscription : juillet 2007 Messages : 495 ![]() |
On est en 9i...
Edit : finalement, après vérif, je crois que les DIRECTORY sont utilisables depuis la 9i. Ca doit être en 8i que ça n'existait pas encore...
__________________
Des chercheurs qui cherchent, on en trouve, mais des chercheurs qui trouvent, on en cherche ! |
|
|
00
|
|
|
#14 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
en effet, depuis la 9i les directory doivent remplacer utl_file_dir
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com