Bonjour,

J'essaie d'insérer des données dans une table vide.
Cette insertion se fait avec 2 select
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT NVL(MAX(ID_PDT_HISTOCODE), 0)+1 FROM PDT_HISTOCODE
(actuellement renvoie la valeur 1 puisque la table est vide)
et
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)
(actuellement renvoie 6 lignes à insérer)

Je voudrais faire un
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)
Le 1er SELECT sert d'auto increment
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.