Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/01/2011, 10h43   #1
Invité de passage
 
Inscription : août 2006
Messages : 1
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1
Points : 0
Points : 0
Par défaut Problème Procédure Oracle-PL/SQL

Bonjour,

j'ai créer une procédure sur la base Oracle pour remplir une table Temps que j'aurai besoin après, mais je n'arrive pas à la valider puisqu'il existe quelques erreurs que je ne sais plus comment les corriger (disons que je suis débutant dans le domaine ).Y a t-il quelcun S.V.P qui peut m'aider?
Voici le code que j'ai élaboré:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
 
CREATE OR REPLACE
PROCEDURE INTEG_TEPS
IS
PRAGMA AUTONOMOUS_TRANSACTION ;
	ParamDate date:= to_date('01011950','DDMMYYYY');
  SEQ_D_TEPS sequence ;
  old_annee number(4):=Extract(YEAR FROM ParamDate);
  old_mois number(2):=datepart('MM', ParamDate);
 
Begin
DELETE d_teps;
While ParamDate < to_date('31122025','DDMMYYYY')
	  Loop
    INSERT INTO d_teps
      (code_teps,
      annee,
      annee_1,
      annee_en_cours,
      date,
      libelle_mois,
      mois,mois_1,
      mois_aa_1,
      mois_en_cours,
      qtd,
      qtd_1,
      semestre,
      trimestre,
      trimestre_1,
      trimestre_aa_1,
      trimestre_en_cours,
      ytd,
      ytd_1)
  VALUES (
    sequence.SEQ_D_TEPS.NEXTVAL,
    Extract(YEAR FROM ParamDate),
    case when annee=old_annee-1 then 1
         else 0
    end AS annee_1,
     case when annee=old_annee then 1
         else 0
    end AS annee_en_cours,
    ParamDate AS date,
    to_char(extract(MONTH FROM ParamDate)),
    extract (MM FROM ParamDate),
      case when annee=old_annee AND mois=old_mois-1 then 1
         else 0
    end AS mois_1,
      case when annee=old_annee-1 AND mois=old_mois then 1
         else 0
    end AS mois_aa_1,
     case when annee=old_annee AND mois=old_mois then 1
       else 0
    end AS mois_en_cours,
   NULL,
   NULL,
  'S'+ to_char( Ceiling((extract (MM FROM ParamDate))/6.0)),
  'T'+ to_char(DatePart(Quarter, ParamDate)),
    case when annee=old_annee AND Ceiling(mois/3.0)= Ceiling((extract (MM FROM ParamDate))/3.0)-1 then 1
      else 0
    end AS trimestre_1,
   case when annee=old_annee-1 AND Ceiling(mois/3.0)= Ceiling((extract (MM FROM ParamDate))/3.0) then 1
    else 0
   end AS trimestre_aa_1,
    case when annee=old_annee AND Ceiling(mois/3.0)= Ceiling((extract (MM FROM ParamDate))/3.0) then 1
      else 0
    end AS trimestre_en_cours,
 NULL,
 NULL);		
    ParamDate := ParamDate + 1 ;
    old_annee:=old_annee+1;
    old_mois:=old_mois+1;
      End loop ;
      commit;  
    END INTEG_TEPS;
les messages d'erreurs sont les suivantes:
- Erreur(14,5): PL/SQL: SQL Statement ignored
- Erreur(19,7): PL/SQL: ORA-01747: invalid user.table.column, table.column, or column specification


Merci par avance
Macxx7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 11h41   #2
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 808
Points : 5 808
La table (synonyme) d_teps n'existe pas ou elle est inaccessible à l'utilisateur qui crée la procédure.
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h56.


 
 
 
 
Partenaires

Hébergement Web