Kaillou, Forum AS400

Forum AS400 et de discussions


    créer un fichier externe (lien virtuel) sous Forms Oracle

    Partagez
    avatar
    Shewolf
    Admin

    Nombre de messages : 190
    Localisation : 91 idf
    Emploi : Analyste Réalisateur / Chef de Projets

    créer un fichier externe (lien virtuel) sous Forms Oracle

    Message par Shewolf le Jeu 24 Jan - 10:07

    Tuto

    Accès aux tables externes


    1/ CREATION D’UN DIRECTORY (REPERTOIRE VIRTUEL)

    2/ ACCORDER DES DROITS DE LECTURE SUR LE DIRECTORY

    3/ CREATION D’UN FICHIER EXTERNE


    Les tables externes permettent de remplacer SQL*LOADER pour alimenter des fichiers depuis un répertoire, voici comment procéder :






    1/ Création d’un DIRECTORY (répertoire virtuel)

    Pour faire accéder Oracle à un répertoire déjà existant sur le serveur, en lui indiquant le chemin d’accès du répertoire ou son nom.


    Format de la commande :

    CREATE [ OR REPLACE ] DIRECTORY directory AS 'path_name' ;
    Pour se faire, l’utilisateur doit être = system ou avoir des droits « CREATE ANY DIRECTORY »

    Exemples :

    CREATE DIRECTORY admin AS 'oracle/admin';
    CREATE OR REPLACE DIRECTORY bfile_dir AS '/usr/bin/bfile_dir' ;
    CREATE OR REPLACE DIRECTORY DIRINT AS 'C:\DIRINT';
    CREATE OR REPLACE DIRECTORY DDWRKSPACEI AS 'D:\Workspacei';


    Visualisation des tables externes : DBA_EXTERNAL_LOCATIONS, ALL_EXTERNAL_LOCATIONS , et USER_EXTERNAL_LOCATIONS . select owner , table_name , DIRECTORY_OWNER , DIRECTORY_NAME from all_external_locations


    2/ Accorder des droits sur le DIRECTORY

    Accorder des droits de lecture au dossier virtuel pour pouvoir l’utiliser.


    Format de la commande :

    GRANT READ ON DIRECTORY directory TO role WITH GRANT OPTION;



    Exemples :

    GRANT READ ON DIRECTORY DDWRKSPACE TO PUBLIC WITH GRANT OPTION;

    GRANT READ, WRITE ON DIRECTORY DDWRKSPACE TO PUBLIC WITH GRANT OPTION;








    3/ Création d’un fichier externe

    Exemples :
    CREATE TABLE employes_ext
    ( numero NUMBER(7),
    nom VARCHAR2(30),
    prenom VARCHAR2(20),
    job VARCHAR2(20) )
    ORGANIZATION EXTERNAL
    (
    TYPE ORACLE_LOADER
    DEFAULT DIRECTORY nom_directory_read
    ACCESS PARAMETERS
    (
    records delimited by newline
    badfile nom_directory_write:'test_table_externe.bad'
    logfile nom_directory_write:'test_table_externe.log'
    fields terminated by ','
    missing field values are null
    ( numero, nom, prenom, job )
    )
    LOCATION ('test_table_externe.txt')
    )
    PARALLEL
    REJECT LIMIT UNLIMITED ;

    CREATE TABLE dept_external (
    deptno NUMBER(6),
    dname VARCHAR2(20),
    loc VARCHAR2(25)
    )
    ORGANIZATION EXTERNAL
    (TYPE oracle_loader
    DEFAULT DIRECTORY admin
    ACCESS PARAMETERS
    (
    RECORDS DELIMITED BY newline
    BADFILE 'ulcase1.bad'
    DISCARDFILE 'ulcase1.dis'
    LOGFILE 'ulcase1.log'
    SKIP 20
    FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
    (
    deptno INTEGER EXTERNAL(6),
    dname CHAR(20),
    loc CHAR(25)
    )
    )
    LOCATION ('ulcase1.ctl')
    )
    REJECT LIMIT UNLIMITED;

    CREATE TABLE navilogi_ext
    (
    jeton varchar2(30),
    datelog varchar2(10),
    heurelog varchar2(6),
    id_ldap_user number(6),
    nom varchar2(30),
    prenom varchar2(30),
    code_groupe number(2),
    code_drf varchar2(2),
    lien_page varchar2(100)
    )
    ORGANIZATION EXTERNAL
    (
    TYPE ORACLE_LOADER
    DEFAULT DIRECTORY DDWRKSPACE
    ACCESS PARAMETERS
    (
    records delimited by newline
    nologfile
    fields terminated by ';'
    missing field values are null

    )
    LOCATION ('visite2i.old')
    )
    REJECT LIMIT UNLIMITED


    Exemple de script :

    select 'Initialisation la première fois du fichier externe des logs serveur' from dual;

    CREATE OR REPLACE DIRECTORY DDWRKSPACEI AS 'D:\Workspacei';

    GRANT READ ON DIRECTORY DDWRKSPACEI TO PUBLIC WITH GRANT OPTION;

    CREATE TABLE navilogi_ext
    (
    jeton varchar2(30),
    datelog varchar2(10),
    heurelog varchar2(6),
    id_ldap_user number(6),
    nom varchar2(30),
    prenom varchar2(30),
    code_groupe number(2),
    code_drf varchar2(2),
    lien_page varchar2(100)
    )
    ORGANIZATION EXTERNAL
    (
    TYPE ORACLE_LOADER
    DEFAULT DIRECTORY DDWRKSPACEI
    ACCESS PARAMETERS
    (
    records delimited by newline
    nologfile
    fields terminated by ';'
    missing field values are null

    )
    LOCATION ('visitei.log')
    )
    REJECT LIMIT UNLIMITED;

      La date/heure actuelle est Lun 20 Nov - 1:55