Bonjour,
J'essaie d'insérer des données dans une table vide.
Cette insertion se fait avec 2 select
(actuellement renvoie la valeur 1 puisque la table est vide)
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT NVL(MAX(ID_PDT_HISTOCODE), 0)+1 FROM PDT_HISTOCODE
et
(actuellement renvoie 6 lignes à insérer)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT PRODUIT.PRCLEUNIK, CID_ARTCLASSIF.ARTCLAVAL FROM CID_ARTCLASSIF, PRODUIT WHERE PRODUIT.CIODM_ID=CID_ARTCLASSIF.ARTIDCIO AND CID_ARTCLASSIF.ARTCLATYP='LPP' AND CID_ARTCLASSIF.ARTCLAFIN IS NOT NULL AND CID_ARTCLASSIF.ARTCLAVAL NOT IN (SELECT T_CODEHISTO FROM PDT_HISTOCODE WHERE PRCLEUNIK=PRODUIT.PRCLEUNIK AND C_TYPECODE=2)
Je voudrais faire un
Le 1er SELECT sert d'auto increment
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 INSERT INTO PDT_HISTOCODE (ID_PDT_HISTOCODE, PRCLEUNIK, T_CODEHISTO) (MON 1er SELECT, MON 2ème SELECT)
et le 2ème SELECT sert à récupérer les données dans 2 autres tables.
La solution idéale serait d'avoir une séquence afin d'éviter le 1er SELECT hélas cette table PDT_HISTOCODE vient d'une application sur laquelle je n'ai aucun accès. Et si on passe par l'application le 1er SELECT est utilisé et le résultat est enregistré dans une variable avant d'être utilisé dans un INSERT (méthode très contestable mais comme dit avant je n'ai pas la main sur le développement de cette appli).
Pour le moment, j'insére les données sans la clé de la table (ID_PDT_HISTOCODE) mais ça me convient à moitié.
Quelqu'un aurait une idée ou une solution pour auto incrémenter mes insertions sans passer par une séquence?
D'avance merci.
Partager