Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL
ETL Le Forum d'entraide ETL (Extract Transform Load) et Datawarehouse : DataStage, SunOpsis, Data Integrator, Informatica, OWB, Data Manager, Talend Open Studio,...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/11/2007, 17h00   #1
Invité de passage
 
Inscription : novembre 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 4
Points : 1
Points : 1
Par défaut Utilisation de sunopsis en mode update avec sequence Oracle

Bonjour,

J'ai besoin de mettre à jour une table Oracle (à partir d'autres tables oracle) qui contient une colonne alimentée par une séquence Oracle (nomseq.nextval).
Sunopsis génère un ordre du style:

insert /*+ APPEND */ into [ma_table]
(champs ...,)
select
C1_..,
C2_..,
nomseq.NEXTVAL,
... 'I' IND_UPDATE
from
...
where (1=1)
And [jointure]
minus
select
...,
...,
valeur_seq,
...,
'I' IND_UPDATE
from
[table cible]

Or, Oracle n'autorise pas à utiliser un nextval avec un minus.
J'ai essayé avec les modules de connaissance: "IKM Oracle Incremental Update (MERGE)", et "KIM Oracle Incremental Update", il y a toujours la même requête avec le minus dans le step "Insert flow into I$ table".
Quelqu'un aurait-il une idée ?

Merci

Sabine
ecoulees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2007, 14h48   #2
Futur Membre du Club
 
Étudiant
Inscription : mai 2004
Messages : 43
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2004
Messages : 43
Points : 16
Points : 16
Envoyer un message via ICQ à titecaro Envoyer un message via MSN à titecaro
Bonjour Sabine,

Je viens d'avoir le même problème que toi et un collègue m'a donné une solution: il faut mettre le calcul du champ où tu utilises ta séquence sur la cible et non sur l'espace de travail (en tout cas, c'est que j'avais fait moi...).

En espérant que ça te serve...
titecaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2007, 10h50   #3
Invité de passage
 
Inscription : novembre 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 4
Points : 1
Points : 1
J'ai testé la solution que tu m'a donné. C'est nettement mieux puisqu'il n'y a plus d'erreur Oracle, le .nextval n'étant plus dans la requête de select mais de merge.
Par contre la mise à jour de la table cible n'est pas bonne: le champ qui contient la valeur rendue par le .nextval n'est pas valorisé, il reste à null alors que l'ordre Oracle généré me semble correct.
Je n'ai plus le temps de chercher pourquoi aujourd'hui, je continuerai une autre fois.
En tout cas merci pour ton aide.

Sabine
ecoulees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 21h08   #4
Invité de passage
 
Inscription : novembre 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 4
Points : 1
Points : 1
Ca fonctionne.
J'ai dû faire quelques petits réglages complémentaires de contrôle de clé mais la solution est la bonne.

Merci

Sabine
ecoulees est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h14.


 
 
 
 
Partenaires

Hébergement Web