Paramétrage de tables externes
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 :
Code:
1 2 3 4
|
"sqlplus" /NOLOG @"%1SCRIPT\LanceETScript.sql" %OraUser% %UserPwd% %ORACLE_SID% "%1SCRIPT\ET%2.sql" "%2.bad" "%2.log" "%3" |
LanceETScript.sql :
Code:
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:
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.