Bonjour,

J'ai trouvé plusieurs sujets abordant le problème mais à chaque fois mes tests ne sont pas concluants.

Pour information, je n'ai pas accès à RETURNING INTO (histoire de version) et je ne souhaite pas ajouter un trigger à la table existante, je n'utilise pas SQL*Plus. C'est un fichier SQL destiné à être exécuté chez les clients (et ici en dev d'abord).

En gros, j'ajoute un profil dans une table PROFIL qui a en guise de colonne, un identifiant auto-incrémenté par une séquence SEQ_PROFIL et un libellé.

Derrière, je veux ajouter des droits avec ce profil, mais il faut que je récupère l'identifiant inséré.

Commençons par faire simple :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
SELECT SEQ_PROFIL.nextval INTO :profil_id FROM DUAL;
INSERT INTO PROFIL (id, label) VALUES (:profil_id, 'Nouveau profil');

Quand j'exécute la commande 1, pas d'erreur.
Quand j'exécute les commandes 1 et 2, erreur :
ORA-01008: toutes les variables ne sont pas liées
J'ai loupé quelque chose ? Comment faut-il que je déclare la variable ?

NB : Quand j'essaye de faire :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
DEFINE profil_id INT;
J'ai l'erreur :
ORA-00900: instruction SQL non valide