Excusez moi, j'espère que c'est + lisible comme ça.
La version d'Oracle est 10g
Bonjour à tous,
Je cherche à paramétrer simplement la création de tables externes (mettre en paramètres les fichiers de log, bad et "source" de la table externe).
Je pensais y arriver simplement, mais ça ne fonctionne pas.
J'ai un .bat qui lance un script sql qui se connecte à la base de données et lance le script proprement dit de création de tables externes.
Ca donne ça :
le .bat :
LanceETScript.sql :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 "sqlplus" /NOLOG @"%1SCRIPT\LanceETScript.sql" %OraUser% %UserPwd% %ORACLE_SID% "%1SCRIPT\ET%2.sql" "%2.bad" "%2.log" "%3"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 set echo off set head off set feed off set pause off set pagesize 0 connect &1/&2@&3 @&4 &5 &6 &7 . run; exit
Et le script de création de table externe en lui même :
================================
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 CREATE OR REPLACE DIRECTORY inDir AS 'C:\IDidItMyWay\In'; CREATE OR REPLACE DIRECTORY outDir AS 'C:\IDidItMyWay\Out'; DROP TABLE GEtoto; CREATE TABLE GEtoto ( typenr VARCHAR2(2), fill1 VARCHAR2(50), fill2 VARCHAR2(126), fill3 VARCHAR2(8), fill4 VARCHAR2(3), MOISTRAI NUMBER(6), NBENREG NUMBER(8) ) ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY inDir ACCESS PARAMETERS(records delimited by newline badfile outDir:'&5' logfile outDir:'&6' fields terminated by ';' missing field values are null (typenr,fill1,fill2,fill3,fill4,MOISTRAI,NBENREG)) LOCATION ('&1') ) PARALLEL REJECT LIMIT UNLIMITED ;
Voila !
On dirait que le script finale s'exécute 2 fois et plante à la 2nde fois.
Y a-t-il moyen de faire + simple (tout en sachant qu'il y a beaucoup de paramètres, la procèdure de création de la table externe doit être paramètrable).
Ai-je été clair ? (je crains que non, mais n'hésitez pas à poser des questions).
Surtout si on peut faire + simple ...
Merci d'avance.
Cordialement.
Partager