IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL*Loader Oracle Discussion :

recuperer le nom du fichier données


Sujet :

SQL*Loader Oracle

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 73
    Par défaut recuperer le nom du fichier données
    Bonjour,

    Je charge une table à partir d'un fichier txt et je souhaite dans ma table mettre le nom du fichier qui m'a servi. Comment puis-je le récuperer ?

    Pour essayer d'être plus claire j'ai un script qui lance le sqlldr
    sqlldr "--"/"---"@mabase control=fichier_control.ctl data=fichier_data log=fichier_log. errors=20 rows=100

    Dans le fichier control j'aimerai récuper "fichier_data" (qui est un nom dynamique qui change tout le temps) pour l'inserer dans un champ de la table.

    Quelqu'un aurait-il une idée ?
    Merci

  2. #2
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    BOnjour,

    c'est quel OS ?

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 73
    Par défaut
    Windows avec emulateur cygwin

  4. #4
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 73
    Par défaut
    Si je n'arrive pas à insérer le nom du fichier je serai obligée de faire un update juste après.
    Quelqu'un aurait-il une autre solution "plus propre" à me proposer
    Merci

  5. #5
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    Quelque chose de ce genre la

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    le sqlloader est ici .....
    apres ....set FILE =fichier_data
     
    set ORACLE_SID=TON_ALIAS
     
    set REP=c:\REPERTOIRE_SCRIPT
    set REP_SCRIPT=%REP%\Sql
    set REP_LOG=%REP%\logs
    set FIC_LOG=%REP_LOG%\test_insert.log
    set CONNECT_USER="scott/tiger@%ORACLE_SID%"
    set SCRIPT=%REP_SCRIPT%\insert.sql
     
    (ECHO BEGINNING INSERT & date /t  & time /T )>> %FIC_LOG%
     
     
     
    for /f "tokens=1,2,3 delims=/ " %%i in ('date /t') DO SET date1=%%i-%%j-%%k
     
    set FILE=test_insert.log-%date1%
     
     
    (ECHO END INSERT & date /t  & time /T )>> %FIC_LOG%
     
     
    echo insert into table_T values (sysdate,'%FILE%'); > %SCRIPT%
    echo commit; >>%SCRIPT%
    echo exit;        >> %SCRIPT%
     
     
     
    sqlplus -s %CONNECT_USER% @%SCRIPT%  >> %FIC_LOG% 2>&1
     
     
    (ECHO END INSERT & date /t  & time /T )>> %FIC_LOG%

  6. #6
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 73
    Par défaut
    Heu alors la c'est un peu compliqué pour moi...
    Je ne comprends pas trop ce qu'il faut que je fasse ???

  7. #7
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 73
    Par défaut
    ma ligne de commande est lancée par un .sh mais j'ai essayé dans le fichier control de récupérer le nom du fichier de données avec "&DATA","&"FILE" avec des % au lieu des & mais rien ne marche.
    Ce n'est peut être tout simplement pas possible ??

  8. #8
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    Tu crees un repertoire c:\REPERTOIRE_SCRIPT\sql

    apres tu crées un fichier .cmd et non .sh !!! avec les commandes ci dessous

    tu adaptes pour que tu puisses insérer dans une table qui existe ...

    apres tu lances...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    38
    39
    40
    41
    42
     
     le sqlloader est ici .....
    REM sqlldr ...
     
    apres ....SET FILE =fichier_data
     
    REM ici on met les variables 
    SET ORACLE_SID=TON_ALIAS
     
    SET REP=c:\REPERTOIRE_SCRIPT
    SET REP_SCRIPT=%REP%\Sql
    SET REP_LOG=%REP%\logs
    SET FIC_LOG=%REP_LOG%\test_insert.log
    SET CONNECT_USER="scott/tiger@%ORACLE_SID%"
    SET SCRIPT=%REP_SCRIPT%\INSERT.sql
     
     
    REM On crée un fichier LOG
    (ECHO BEGINNING INSERT & date /t  & time /T )>> %FIC_LOG%
     
     
     REM C'est juste une variable pour simuler ton fichier DATA qui change
    FOR /f "tokens=1,2,3 delims=/ " %%i IN ('date /t') DO SET date1=%%i-%%j-%%k
     
    SET FILE=test_insert.log-%date1%
     
     
    (ECHO END INSERT & date /t  & time /T )>> %FIC_LOG%
     
    REM ICI on crée un fichier d'insert dans TA table qui contient la variable
     
    echo INSERT INTO table_T VALUES (sysdate,'%FILE%'); > %SCRIPT%
    echo commit; >>%SCRIPT%
    echo exit;        >> %SCRIPT%
     
     
    REM la on lancer le fichier ....
     
    sqlplus -s %CONNECT_USER% @%SCRIPT%  >> %FIC_LOG% 2>&1
     
     
    (ECHO END INSERT & date /t  & time /T )>> %FIC_LOG%

  9. #9
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 73
    Par défaut
    Merci, je vais essayer ta méthode.

Discussions similaires

  1. Réponses: 8
    Dernier message: 16/01/2008, 17h15
  2. [XSLT] Récupérer le nom du fichier XML
    Par silverspike dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 26/04/2006, 15h01
  3. Réponses: 4
    Dernier message: 03/02/2006, 19h02
  4. Réponses: 3
    Dernier message: 12/07/2005, 14h33
  5. [ Debutant ] Recuperer un nom de fichier
    Par 13obscur dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 21/02/2005, 10h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo