Bonjour tout le monde,
Voila, je voudrais manipuler des fichiers en PL/SQL et j'ai vu que le package utl_file permet de le faire.
En suivant un exemple que j'ai adapté, j'ai obtenu le code suivant :
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 26 27 28 29 30 31 32 33 34 35 36 37
| DECLARE
monfic VARCHAR2(30) := 'entree.txt' ;
mondir VARCHAR(128) := 'D:\scripts\files_in';
ft_monfic UTL_FILE.FILE_TYPE ;
ligne VARCHAR2(32767) ;
err_msg VARCHAR2(256) ;
monexc EXCEPTION ;
BEGIN
-- Ouverture du fichier en entree
BEGIN
ft_monfic := UTL_FILE.FOPEN( mondir, monfic, 'R', 32764 ) ;
EXCEPTION
WHEN OTHERS THEN
err_msg := SQLERRM || ' [' || mondir || '] -> ' || monfic;
RAISE monexc ;
END ;
-- Traitement --
BEGIN
LOOP
-- lecture du fichier en entree --
UTL_FILE.GET_LINE( ft_monfic, ligne ) ;
DBMS_OUTPUT.PUT_LINE(ligne);
END LOOP ;
EXCEPTION
WHEN NO_DATA_FOUND THEN -- Fin du fichier en entree
-- Fermeture des fichiers --
UTL_FILE.FCLOSE( ft_monfic ) ;
END ;
EXCEPTION
WHEN monexc THEN
UTL_FILE.FCLOSE_ALL ;
RAISE_APPLICATION_ERROR( -20100, err_msg ) ;
END ;
/ |
Quand j'exécute ce script, la console m'affiche que UTL_FILE doit être déclaré 
Je cherche un peu avec mon ami google ce que ça veut dire et donc je me suis retrouvée à lancer utlfile.sql (qui se trouve dans D:\oraclexe\app\oracle\product\10.2.0\server\RDBMS\ADMIN\)
Je me retrouve donc avec une nouvelle erreur
:
ORA-04067: package body "SYSTEM.UTL_FILE" n'existe pas
et effectivement, dans utlfile.sql, il n'y a que les spec du package...
Quelqu'un peut-il me dire où trouver le corps de ce package? ou tout simplement comment je pourrais lancer ce script?
Merci
PS : j'utilise Oracle Database 10g Express Edition
Partager