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 :
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Est ce possible ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT NoClient INTO NOuveauNum FROM Client WHERE Nomclient=nom and PrenomClient=prenom AND AdClient=ad;
D'avance
Partager