Première fonction

Résolu/Fermé
Imagine43 Messages postés 264 Date d'inscription jeudi 5 juin 2014 Statut Membre Dernière intervention 15 novembre 2023 - 29 févr. 2016 à 23:02
Imagine43 Messages postés 264 Date d'inscription jeudi 5 juin 2014 Statut Membre Dernière intervention 15 novembre 2023 - 1 mars 2016 à 20:25
Bonjour,

Je suis débutant en PL/SQL et je dois écrire une fonction permettant d'ajouter un devis. Appelée Sp_AjoutDevis, celle-ci doit créer un devis si les données rentrées en paramètres vérifient le fait que l'identifiant de la table personne existe et pareillement pour celui de la table produit.

Pour récapituler, nous avons :

Table client -> Cli_id ; cli_nom ; cli_prenom : cli_ddn
Table Devis -> dev_id ; dev_date ; dev_dureevalidite ; dev_quantite; dev_client ; dev_produit
Table Produit -> pdt_id ; pdt_designation ; pdt_PUHT

Pour le moment, j'ai fait ce code là :

CREATE OR REPLACE FUNCTION SP_AJOUTDEVIS 
(
NUMCLIENT IN NUMBER
, IDPRODUIT IN NUMBER
, IDTVA IN NUMBER
, QTE IN NUMBER
, DUREEVALIDITE IN NUMBER
) RETURN VARCHAR2 AS

p_NUMCLIENT NUMBER := NUMCLIENT ;
p_IDPRODUIT NUMBER := IDPRODUIT;
p_IDTVA NUMBER := IDTVA;
p_QTE NUMBER := QTE;
p_DUREEVALIDITE VARCHAR2(100) := DUREEVALIDITE;
resultat NUMBER;
retour varchar2(100);
BEGIN

/*WHEN EXISTS ( */
resultat = (SELECT CLI_ID FROM CLIENT WHERE CLI_ID = p_NUMCLIENT);/*)*/
IF NO_DATA_FOUND THEN
return retour = "ID Client Inconnu.";
ELSE
/*WHEN EXISTS (*/
SELECT PDT_ID FROM PRODUIT WHERE PDT_ID = p_IDPRODUIT;/*)*/
IF NO_DATA_FOUND THEN
return retour = "ID Client Inconnu.";
ELSE
INSERT INTO DEVIS VALUES ( (SELECT NVL(MAX(DEV_ID),0)+1 FROM DEVIS), TO_CHAR(SYSDATE, "HH24:MI:SS"), p_DUREEVALIDITE, p_QTE, p_NUMCLIENT, p_IDPRODUIT );
return retour = "Devis enregistré.";
END IF;
END IF;
/*ELSE
retour := "ID Produit Inconnu."
END IF;
ELSE
retour := "ID Client Inconnu."
END IF;

RETURN retour;*/
END SP_AJOUTDEVIS;



Mais pour le moment, je ne fais qu'enchaîner les erreurs et au final, je me perds plus qu'autre chose...

Si quelqu'un pouvait m'aiguiller quant à la marche à suivre . ..


Bonne soirée,
Imagine.



A voir également:

1 réponse

Imagine43 Messages postés 264 Date d'inscription jeudi 5 juin 2014 Statut Membre Dernière intervention 15 novembre 2023 54
1 mars 2016 à 20:25
Bien bien bien, comme je me doutais, y a personne pour cette techno ^^ C'est impressionnant comme le PL/SQL rebute tout le monde!


RESOLU
0