ORA-06512 ORA-06510 UTL_FILE WRITE ERROR

Posted on mars 13th, 2007 in DataBase, Oracle, Tips by David

Oracle : 8.1.7

OS : Tous ?

Symptomes :

Lors d’une écriture / lecture de fichier :

ERROR at line 1:
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at “SYS.UTL_FILE”, line 103
ORA-06512: at “SYS.UTL_FILE”, line 306
ORA-06512: at line 121

Solutions :

1 - Vous n’avez pas le droit , ne pouvez pas écrire dans le fichier.

Il faut vérifier que l’utilisateur Oracle, ou le votre a bien les droits pour écrire le fichier, et que le répertoire existe.

Sous unix, si vous etes connecté en BEQ ( du genre sqlplus <nomutilisateur> ), c’est avec votre utilisateur qu’il faut faire le test. Connecté en SQL/NET ( sqlplus <nomuser>@<labase> ) il faut vérifier que l’utilisateur oracle a le droit d’écrire.

2 - Ligne trop longue !

Par défaut le FOPEN vous autorise 1024 caractères, donc 1023 en comptant le retour chariot.

Pour modifier cela, il faut utiliser “l’autre” FOPEN :

UTL_FILE.FOPEN (
location IN VARCHAR2,
filename IN VARCHAR2,
open_mode IN VARCHAR2,
max_linesize IN BINARY_INTEGER)
RETURN file_type;

Vala !

Post a comment