Cela ressemble à un répertoire externe Oracle est parfait pour le travail. Gardez à l'esprit que cette approche est semée d'embûches s'il s'agit d'un fichier texte dans lequel les utilisateurs peuvent écrire. Les utilisateurs feront une centaine de choses que vous n'auriez jamais cru possibles qui causeront des erreurs et plus .
Extrait de l'article :
Créer un répertoire
accordez la lecture, écrivez sur le répertoire data_dir à votre_utilisateur ;
Créer une table externe
CREATE TABLE test_ext (
test_code VARCHAR2(5),
test_name VARCHAR2(50)
)
ORGANIZATION EXTERNAL (
TYPE ORACLE_LOADER
DEFAULT DIRECTORY ext_tab_data
ACCESS PARAMETERS (
RECORDS DELIMITED BY NEWLINE
FIELDS TERMINATED BY ','
MISSING FIELD VALUES ARE NULL
(
test_code CHAR(5),
test_name CHAR(50)
)
)
LOCATION ('test1.txt','test2.txt')
)
PARALLEL 5
REJECT LIMIT UNLIMITED;
puis lire à partir du tableau
SELECT *
FROM test_ext
ORDER BY test_name;
Modifier :vous pouvez toujours le faire avec des répertoires qui ne se trouvent pas sur le serveur de base de données, mais plus de travail est nécessaire et cela représente un risque encore plus grand pour la sécurité de la base de données et la qualité des données. Cette approche n'est pas non plus évolutive. Avez-vous l'intention d'ajouter un nouvel annuaire chaque fois qu'un nouvel utilisateur est ajouté ?
Étapes pour autoriser Oracle à accéder aux fichiers situés sur une autre machine (en supposant que le système d'exploitation Windows)
- créez un utilisateur Windows ou de domaine qui aura des autorisations de lecture de fichiers sur chaque répertoire auquel vous souhaitez accéder
- sur le serveur de base de données, exécutez services.msc et remplacez l'utilisateur sur lequel le service de base de données Oracle s'exécute par votre nouvel utilisateur de domaine. Ajoutez cet utilisateur au groupe local appelé ORA_DBA sur le serveur de base de données
- redémarrez la base de données pour que les modifications prennent effet
- créer un répertoire dans la base de données en utilisant un chemin comme //clientPc/sharedFolder
- accorder des autorisations de lecture à l'utilisateur de votre base de données
- sur la machine cliente, accordez la lecture à l'utilisateur du domaine sur ce dossier
- vérifier la connectivité en utilisant UTLFILE pour lire un exemple de fichier sur le pc client