|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : janvier 2006 Messages : 120 ![]() |
Bonjour à tous,
Je suis sous Oracle 10g, je bosse actuellement sur une base de données sur laquelle je dois faire des insert sur 2 tables en même temps. Mon problème n'est pas de faire 2 insert dans deux tables, mais la compréhension de la structure d'une table dans laquelle je dois insérer (table codebarre). Dans codebarre j'ai une colonne prefix qui nullable = No. Je n'ai aucune séquence stockée en base de données pour cette colonne mais celle ci contient des données déjà insérées par d'autres personnes. Le prefix semble s'auto incrémenter de +1 à chaque insertion en fonction du secteur. codebarre : ID NUMBER(10,0) No SECTOR CHAR(1 BYTE) No YEAR NUMBER(2,0) No PREFIX NUMBER(5,0) No codebarre : id Sector YEAR Prefix 1 L 10 1 2 L 10 2 3 L 10 3 4 L 10 4 5 L 10 5 36699 F 11 1 36905 F 11 2 36906 F 11 3 36909 F 11 4 Je me demande si il y aurait un moyen d'insérer dans codebarre un prefix tel que : sector like 'F' and YEAR = 11 and PREFIX = precedent prefix+1 dans un insert into ? |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#3 |
![]() ![]() |
Vous n'avez pas tout simplement un trigger sur votre table ?
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#4 | ||
|
Membre à l'essai
![]() Inscription : janvier 2006 Messages : 120 ![]() |
salut,
Merci pour vos réponses. J'ai effectivement un trigger pour cette table, mais je n'ai pas l'impression qu'il gère la colonne PREFIX. Code :
Any idea ? Merci. |
||
|
|
00
|
|
|
#5 |
![]() ![]() |
On peut faire ce qu'on veut, vous avez de gros éléments de réponse dans le lien posté par Yanika_bzh.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() Inscription : janvier 2006 Messages : 120 ![]() |
Merci Waldar pour ta réponse. Je vais me pencher un peu plus sur le lien de Yanika_bzh.
Par contre, le trigger ne gère pas la colonne PREFIX, c'est bien ça? A+ |
|
|
00
|
|
|
#7 |
![]() ![]() |
Tout à fait, le trigger sert à deux choses :
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#8 |
![]() ![]() Inscription : octobre 2008 Messages : 1 508 ![]() |
En tout cas il faudrait enlever ce EXCEPTION WHEN OTHERS THEN NULL qui veut dire "quelque soit le problème, je ne veux pas que l'appelant soit au courant" et qui est à peu près la pire chose qu'on puisse faire dans un gestionnaire d'erreurs.
Apparemment Oracle 11g a même introduit un warning spécialement contre cet usage. |
|
|
10
|
|
|
#9 | ||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
On peut facilement renoncer aussi au code suivant
Code :
|
||
|
|
10
|
|
|
#10 |
|
Membre à l'essai
![]() Inscription : janvier 2006 Messages : 120 ![]() |
Salut à tous,
Merci beaucoup pour votre aide A+ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com