|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2004 Messages : 6 ![]() |
J'utilise SQLLoader pour charger un fichier dans une table.
Dans l'une des valeurs à charger, je voudrais faire référence à un MAX d'une autre table. LOAD DATA APPEND INTO TABLE table1 FIELDS TERMINATED BY ';' TRAILING NULLCOLS (donnee1, donnee2, donnee3 "select max (champ1) from table2", donnee4 CONSTANT "1", date_process SYSDATE ) Mais j'ai comme retour Record 1: Rejected - Error on table table1, column donnee3. ORA-00936: missing expression Ne peut on pas inclure une clause select dans le SQL loader ? Merci de vos réponses |
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Inscription : mai 2004 Messages : 6 ![]() |
J'ai pallié au problème en utilisant un Trigger sur l'action Insert Into ... c'est tout bon, mais j'aimerais quand même savoir si c'est possible le coup du select dans SqlLoader
merci |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : novembre 2005 Messages : 45 ![]() |
Je ne sais pas non plus, j'ai dû réaliser la même chose que toi et ma conclusion fût de créer un trigger sur la table.
|
|
|
00
|
|
|
#4 |
|
Membre expérimenté
![]() ![]() Inscription : décembre 2005 Messages : 541 ![]() |
Si on se place dans le cas de figure du chargement de 1.000.000 lignes, il y a sans doute plus optimal que d'executer strictement la meme requete, un million de fois, pour chacune de ces lignes!!!!
|
|
|
00
|
|
|
#5 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Et pourquoi ne pas se tourner vers les solutions d'avenir telle que la table externe ?
|
|
|
00
|
|
|
#6 | ||||||
|
Membre éprouvé
![]() Inscription : septembre 2004 Messages : 465 ![]() |
Bonjour.
Je remonte ce post pour savoir s'il y a une solution autre que de créer une table ou un trigger. Je n'ai pas trouvé d'exemple de syntaxe dans les docs Oraclce (officielles et celle de Jaouad). Merci PS: voici le ctl tel que je le conçois, sauf qu'on ne peut utiliser de nom de colonne sqlloader dans la requete sql Code :
Code :
Code :
PS2: j'ai créé une fonction qui exécute le select (ID_A_RECUPERER EXPRESSION "(ma_fonction(:ID_A_RECUPERER)") mais cela ne change rien. J'ai les mêmes messages d'erreurs. |
||||||
|
|
00
|
|
|
#7 | ||
|
Membre éprouvé
![]() Inscription : septembre 2004 Messages : 465 ![]() |
Après une matinée de recherche, j'ai enfin trouvé!
![]() Contrairement à ce que j'ai lu dans pas mal de docs (peut-être trop anciennes), on peut utiliser une colonne directement dans une requête. Il suffit de mettre BOUNDFILLER à la place de FILLER. Donc ceci fonctionne parfaitement: Code :
PS: je suis sous Oracle 9.2. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com