Label Décisionnel
Bienvenue, Invité
Merci de vous identifier ou de vous inscrire.    Mot de passe perdu?
Aller en bas Répondre Ajouté aux favoris : 1
SUJET: Création d'une séquence
#3688
arifi (Utilisateur)
Fresh Boarder
Messages: 11
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Création d'une séquence depuis 1 Année, 2 Mois Karma: 0  
Bonjour,

J'aimerais mappé un champ numérique d'une table avec une séquence. J'ai créé unz séquence standard. Mais je ne sais comment l'appeler dans le mapping pour incrémenter ce champ numérique par la séquence??

D'avance merci
 
  L'administrateur a désactivé l'accès public en écriture.
#3689
rchaumais (Admin)
Administrateur
Messages: 829
graph
Personne n'est connecté Cliquez ici pour voir le profil de cet utilisateur
Re:Création d'une séquence depuis 1 Année, 2 Mois Karma: 25  
Bonjour,

J'ai le même besoin de précision et j'aimerai pour ma part avoir une séquence qui puisse jouer le rôle d'auto incrément dans une table Oracle.

Merci
 
  L'administrateur a désactivé l'accès public en écriture.
#3690
essadouq (Utilisateur)
Junior Boarder
Messages: 21
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:Création d'une séquence depuis 1 Année, 2 Mois Karma: 0  
Bonjour rchaumais,

1. tu crées une séquence simple :
CREATE SEQUENCE "MA_SEQ"
START WITH 1
MAXVALUE 999999999999999
MINVALUE 1
NOCYCLE
NOCACHE
NOORDER;

2. ensuite un trigger qui appel cette sequence :
CREATE TRIGGER "MON_TRIGGER"
BEFORE INSERT OR UPDATE
OF "MON_ID_A_INCREMENTER"
ON "MA_TABLE"
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
tmpVar NUMBER;
BEGIN
tmpVar := 0;

SELECT "MA_SEQ".NEXTVAL INTO tmpVar FROM dual;
:NEW."MON_ID_A_INCREMENTER" := tmpVar;

EXCEPTION
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END "MON_TRIGGER";

3. Dans le mapping ODI, ce champ est laissé vide, comme non utilisé.
Or, lors d’insertion de nouveaux enregistrements, le champ "MON_ID_A_INCREMENTER" est finalement bien renseigné.
En effet, le trigger propre à cette table "MA8TABLE" est déclenché à chaque insertion. Celui-ci incrémente la séquence et renseigne le champ.

Amine.
 
 
Dernière édition: 01-07-2009 à 18:13 Par essadouq.
  L'administrateur a désactivé l'accès public en écriture.
#3691
rchaumais (Admin)
Administrateur
Messages: 829
graph
Personne n'est connecté Cliquez ici pour voir le profil de cet utilisateur
Re:Création d'une séquence depuis 1 Année, 2 Mois Karma: 25  
Merci Amine,

Cependant, je préfère passer par une séquence ODI qui invoque ma séquence Oracle (ça ça marche) et je souhaite faire référence à ma séquence dans mon mapping et c'est là que cela ne marche pas.

Des idées ?
 
  L'administrateur a désactivé l'accès public en écriture.
#3692
essadouq (Utilisateur)
Junior Boarder
Messages: 21
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:Création d'une séquence depuis 1 Année, 2 Mois Karma: 0  
PS : pas sur, mais à essayer ->

Au niveau de ton champ à mapper (Implémentation), tu ouvres l'éditeur d'expressions, il y a un écran ou tu sélectionnes tes variables, fonctions,.. et SÉQUENCES (globales ou propres à ton projet). et tu click dessus 2 fois.

ou bien tu fais ca au niveau de l'espace de l'implementation (champ à mapper) :

: MASEQ_NEXTVAL
 
 
Dernière édition: 01-07-2009 à 18:36 Par essadouq.
  L'administrateur a désactivé l'accès public en écriture.
#3693
arifi (Utilisateur)
Fresh Boarder
Messages: 11
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:Création d'une séquence depuis 1 Année, 2 Mois Karma: 0  
Bonsoir à tous,

Je vous remercie tous pour vos réponses
 
  L'administrateur a désactivé l'accès public en écriture.
Revenir en haut Répondre
Développé par FireBoardObtenir les derniers messages directement sur votre PC
Joomla Template by Joomlashack
Joomla Templates by JoomlaShack Joomla Templates