Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
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 01/07/2008, 23h42   #1
Membre actif
 
Inscription : avril 2003
Messages : 405
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 405
Points : 180
Points : 180
Envoyer un message via MSN à Herlece
Par défaut PL SQL Explication

Bonsoir à tous je n'ai pas l'habitude demander sa mais est ce que quelqu'un pourrait m'expliquer ces quelques lignes d'une proc stock écrite en PLSQL
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
(
            wdate IN date,
            wsociete IN varchar2,
            tab_ctx_dll out bocursors.table_ctx_dll) IS
 
wannee varchar2(4);
wmois varchar2(2);
 
begin
 
SELECT to_char(wdate,'YYYY'), to_char(wdate,'MM')
INTO wannee, wmois
FROM dual;
 
case when wmois=1 then
open tab_ctx_dll
 
FOR
SELECT wannee,
  '01' mois,
  bogroupe.u##corg,
  bogroupe.lorg,
  bogroupe.u##cagence,
  bogroupe.cgroupe,
  substr(Locaux.cpos,1,2),
  boctx.ctyphas,
  boctx.ltyphas,
  boctx.u##idcompte,
  count(DISTINCT boctx.u##idcompte),
  logirep_solde_compte(boctx.u##idcompte,last_day('01/01/'||wannee))
FROM
  boctx,
  faitloc,
  locaux,
  bogroupe
WHERE
  faitloc.U##IDMENAGE=boctx.U##IDCOMPTE
  AND faitloc.U##IDLOCAL=locaux.U##IDLOCAL
  AND locaux.U##IDGROUPE=bogroupe.U##IDGROUPE
  AND (boctx.datclo IS NULL OR boctx.datclo > last_day('01/01/'||wannee))
  AND boctx.datevent <= last_day('01/01/'||wannee)
  AND boctx.ctyphas IN('CDT', 'JUD', 'EXP')
  AND boctx.ctyproc='CPR'
  AND boctx.temctx  =  'C'
  AND faitloc.temlprin = 1
  AND bogroupe.u##corg=wsociete
  AND boctx.nopha = Logirep_Max_No_Phase(boctx.u##idcompte, last_day('01/01/'||wannee))
GROUP BY wannee,
Je suis chez un client et sur un rapport BO on se sert de cette proc stock pour rappatrier les données, mais je ne la comprend pas bien. Elle n'est pas complète mais le reste je pourrai m'en sortir car en fait se sont pratiquement les mêmes lignes qui se répètent.

Merci à tous
Herlece est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 07h32   #2
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
c'est le code PL/SQL que vous ne comprenez pas ou la requete SQL ?
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 13h21   #3
Membre actif
 
Inscription : avril 2003
Messages : 405
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 405
Points : 180
Points : 180
Envoyer un message via MSN à Herlece
C'est le code que je ne comprend pas car d'après ce que j'ai pu comprendre on se sert de cette proc stock pour alimenter un curseur ou une table mais je ne comprend pas toutes les instructions et je voudrai rajouter un champs dedans.
Merci
Herlece est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 16h19   #4
Invité régulier
 
Inscription : juin 2008
Messages : 31
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 31
Points : 7
Points : 7
Pour ce que je comprends dans ce que tu a donné :
Code :
1
2
3
4
 
wdate IN date,
wsociete IN varchar2,
tab_ctx_dll out bocursors.table_ctx_dll
Il attend une date, un nom de société, et restitura un curseur

Code :
1
2
3
4
 
SELECT to_char(wdate,'YYYY'), to_char(wdate,'MM')
INTO wannee, wmois
FROM dual;
Il recupére l'année et le mois en cours dans les variables wannee, wmois

Code :
1
2
3
 
case when wmois=1 then
open tab_ctx_dll
si le mois en court est janvier alors il crée le curseur avec la requête suivante

Code :
1
2
 
faitloc.U##IDMENAGE=boctx.U##IDCOMPTE
La requête n'est pas bien complexe par contre je ne comprends pas les ## ??
Quelqu'un sait ?
Knonix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2008, 22h11   #5
Membre actif
 
Inscription : avril 2003
Messages : 405
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 405
Points : 180
Points : 180
Envoyer un message via MSN à Herlece
Merci beaucoup pour toutes ces explications sa va m'aider énormement. Les Dièses je ne sais pas mais certaines tables dans la base oracle sont nommées ainsi
Herlece est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h39.


 
 
 
 
Partenaires

Hébergement Web