Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
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 18/01/2008, 17h47   #1
Invité régulier
 
Inscription : février 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 41
Points : 7
Points : 7
Par défaut [Oracle 9i] FTL_UTL ne marche plus après un pénible reboot de la base

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
molarisapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 17h56   #2
Membre expérimenté
 
Inscription : juillet 2007
Messages : 495
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 495
Points : 585
Points : 585
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 !
dgi77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2008, 18h12   #3
Invité régulier
 
Inscription : février 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 41
Points : 7
Points : 7
C'est une version 9.2.0.8.0

Ou ce trouve les fichier init.ora? Sont t'ils éditables via notepad?

Merci
molarisapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2008, 09h37   #4
Membre Expert
 
Avatar de scheu
 
Inscription : juin 2007
Messages : 1 497
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 497
Points : 1 485
Points : 1 485
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
scheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2008, 09h53   #5
Nouveau Membre du Club
 
Inscription : avril 2002
Messages : 103
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 103
Points : 28
Points : 28
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
cheprod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2008, 11h13   #6
Invité régulier
 
Inscription : février 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 41
Points : 7
Points : 7
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
molarisapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2008, 11h19   #7
Membre expérimenté
 
Inscription : juillet 2007
Messages : 495
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 495
Points : 585
Points : 585
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 !
dgi77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2008, 11h37   #8
Invité régulier
 
Inscription : février 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 41
Points : 7
Points : 7
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.
molarisapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2008, 12h23   #9
Membre expérimenté
 
Inscription : juillet 2007
Messages : 495
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 495
Points : 585
Points : 585
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 !
dgi77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2008, 14h02   #10
Nouveau Membre du Club
 
Inscription : avril 2002
Messages : 103
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 103
Points : 28
Points : 28
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
cheprod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2008, 17h30   #11
Invité régulier
 
Inscription : février 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 41
Points : 7
Points : 7
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
molarisapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2008, 18h05   #12
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
sont-ce mes yeux où personne n'a parlé de créer une DIRECTORY plutôt que faire une grosse faille de sécurité en mettant utl_file_dir à * ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2008, 18h10   #13
Membre expérimenté
 
Inscription : juillet 2007
Messages : 495
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 495
Points : 585
Points : 585
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 !
dgi77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2008, 10h34   #14
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
en effet, depuis la 9i les directory doivent remplacer utl_file_dir
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h09.


 
 
 
 
Partenaires

Hébergement Web