[PL/SQL] Recuperer le nouveau numero d'une sequence
Bonjour,
je débute en oracle et j'ai une question qui peut vous paraitre simple mais je suis habitué à Access alors, je ne parviens pas à obtenir ce que je souhaite.
Je dispose d'une table client :
NumeroClient : Entier
NomClient : Varchar
PrenomClient : Varchar
AdresseClient : VarChar
FaxClient : Varchar
TelClient : VarChar
Sur le numero client, j'ai crée une sequence. Ensuit je dispose d'une fonction qui m'insere le client est et censé me renvoyer le nouveau numero client créé. Et c'est ici que je bloque :
Ceci fonctionne :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| CREATE OR REPLACE FUNCTION I_client (
nom IN varchar2,
prenom IN varchar2,
rs IN varchar2,
ad IN varchar2,
tel IN varchar2,
fax IN varchar2) return NUMBER IS
NOuveauNum number;
cpt integer;
BEGIN
SELECT count(*) INTO cpt
FROM client
WHERE (NomClient = nom) AND (PrenomClient = prenom) and (AdClient=ad);
IF cpt <> 0 THEN
RAISE_APPLICATION_ERROR(-20000,'ce enregistrement exite deja');
ELSE
INSERT INTO Client (NomClient, PrenomClient, RaisonSociale, AdClient, TelClient, FaxClient)
VALUES (nom, prenom, rs, ad, tel, fax);
SELECT NoClient INTO NOuveauNum FROM Client
WHERE Nomclient=nom and PrenomClient=prenom AND AdClient=ad;
END IF;
RETURN (NOuveauNum);
END; |
Ce que je voudrais savoir c'est comment faire pour recuperer le numero client sans avoir à interoger à nouveau la base avec la requête :
Code:
1 2 3
|
SELECT NoClient INTO NOuveauNum FROM Client
WHERE Nomclient=nom and PrenomClient=prenom AND AdClient=ad; |
Est ce possible ?
D'avance :merci: