Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1177 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [Oracle] Probleme avec les packages

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Oracle] Probleme avec les packages

n°254142
rick@r
coin coin coin
Posté le 26-11-2002 à 16:45:58  profilanswer
 

J'ai écrit mon package dans un fichier Package.sql mais qd j'essaie
de le lancer pour le creer sous oracle il me recopie les lignes de code
de mon fichier sans rien faire , il ne revient meme pas au prompt de sql.
Alors je voudrais savoir comment on lance un script .
J'ai essayé d'ouvrir mon fichier depuis sql et l'exécuter avec @Package,
j'ai essayé avec la commande start [chemin du fichier]\Package.sql.
 
Mais le fait qu'il ne revienne pas au prompt me semble bizarre ...
Voila mon code :

Code :
  1. SET ECHO ON
  2. SPOOL Statistiques_verif
  3. CREATE PACKAGE Statistiques IS
  4. FUNCTION Meilleur_produit (NumCat IN NUMBER)
  5. RETURN (Varchar , Integer) ;
  6. FUNCTION Stat_salaires ()
  7. RETURN (Integer, Integer, Integer) ;
  8. END Statistiques ;
  9. CREATE PACKAGE BODY Statistiques IS
  10. FUNCTION Meilleur_produit (NumCat IN NUMBER)
  11. RETURN (varchar , integer) IS
  12. Nom_Produit varchar , Num_Produit integer;
  13. BEGIN
  14.  CURSOR Produits_associes (NC integer) IS
  15.  SELECT P.Nom, P.NumProd, D.Quantite
  16.  FROM Produit P, DetailCommande D
  17.  WHERE P.NumCat = NC
  18.  AND P.NumProd = D.NumProd
  19.  ORDER BY P.NumProd;
  20.  e Produits_associes%ROWTYPE ;
  21.  Max_quantite DetailCommande.Quantite%TYPE ;
  22.  Somme_quantite DetailCommande.Quantite%TYPE ;
  23.  BEGIN
  24.   Max_quantite:=0;
  25.   Somme_quantite:=0;
  26.   OPEN Produits_associes(NumCat);
  27.   FETCH Produits_associes INTO e;
  28.   NumProd_precedent:=e.NumProd;
  29.   NumProd_precedent:=e.Nom;
  30.   WHILE (Produits_associes%FOUND)
  31.    LOOP
  32.    IF (e.NumProd=NumProd_precedent)
  33.    THEN Somme_quantite:=Somme_quantite+e.Quantite;
  34.    ELSE
  35.     Somme_quantite:=e.Quantite;
  36.     IF (Somme_quantite>Max_quantite)
  37.     THEN
  38.     Max_quantite:=Somme_quantite;
  39.     NumProd_precedent:=e.NumProd;
  40.     NumProd_precedent:=e.Nom;
  41.     END IF;
  42.     FETCH Produits_associes INTO e;
  43.    END IF;
  44.    END LOOP ;
  45.   CLOSE Produits_associes;
  46.  END;
  47.  RETURN (NomProd_precedent, NumProd_precedent) ;
  48. END;
  49. FUNCTION Stat_salaires ()
  50. RETURN (integer, integer, integer) IS
  51. Somme_salaires integer, Nbr_employes integer, Rapport integer ;
  52. BEGIN
  53.  CURSOR Ens_vendeurs  IS
  54.  SELECT E.NumEmp, E.DateEmbauche, E.SalaireBase, V.NbArticlesVendus
  55.  FROM Vendeur V, Employe E
  56.  WHERE V.NumEmp = E.NumEmp
  57.  ORDER BY E.NumEmp asc;
  58.  CURSOR Ens_autres_employes  IS
  59.  SELECT E.NumEmp, E.DateEmbauche, E.SalaireBase
  60.  FROM Employe E
  61.  WHERE E.Fonction NOT LIKE 'Vendeur'
  62.  ORDER BY E.NumEmp asc;
  63.  e Ens_vendeurs%ROWTYPE ;
  64.  f Ens_autres_employes%ROWTYPE ;
  65.  SELECT COUNT(*) INTO Nbr_employes
  66.  FROM EMPLOYE;
  67.  BEGIN
  68.   Somme_salaires:=0;
  69.   Rapport:=0;
  70.   OPEN Ens_vendeurs ;
  71.   FETCH Ens_vendeurs INTO e;
  72.   WHILE (Ens_vendeurs%FOUND)
  73.    LOOP
  74.    Somme_salaires:=Somme_salaires + 40*(MONTHS_BETWEEN(SYSDATE,e.DateEmbauche)/12) + e.SalaireBase
  75.       + 15*(e.NbArticlesVendus/10) ;
  76.    END LOOP ;
  77.   CLOSE Ens_vendeurs;
  78.   OPEN Ens_autres_employes ;
  79.   FETCH Ens_autres_employes  INTO e;
  80.   WHILE (Ens_autres_employes %FOUND)
  81.    LOOP
  82.    Somme_salaires:=Somme_salaires + 40*(MONTHS_BETWEEN(SYSDATE,e.DateEmbauche)/12) + e.SalaireBase;
  83.    END LOOP ;
  84.   CLOSE Ens_autres_employes ;
  85.  END;
  86.  RETURN (Somme_salaires, NbrEmployes, Somme_salaires/NbrEmployes) ;
  87. END;
  88. END Statistiques ;
  89. SPOOL OFF
  90. SELECT *
  91. FROM user_errors
  92. WHERE name='STATISTIQUES' ;

mood
Publicité
Posté le 26-11-2002 à 16:45:58  profilanswer
 

n°254148
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 26-11-2002 à 16:49:31  profilanswer
 

START Package.sql


---------------
J'ai un string dans l'array (Paris Hilton)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [Oracle] Probleme avec les packages

 

Sujets relatifs
Probleme de mp3 avec une API vbProbleme surement simple a résoudre mais pas pour moi
Problème de lecture d'un répertoireUn probleme d'affichage
[opengl]probleme d'affichage de texturePHP + JS c koi le probleme?? [RESOLU]
[C++/API] AVIFileInfo : problème !!![SWING] Problème avec GridBagLayout
tout petit problème sous excel , les pros me diront ça vite !!Pas vraiment de la prog pure mais probleme sous excel!!!!
Plus de sujets relatifs à : [Oracle] Probleme avec les packages


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR