bonsoir

j'ai plusieurs requetes a faire sur une bdd en prod et je souhaite utiliser un bloc Clause WITH AS dans lequel je requeterai afin d'avoir des enregistrements que je veux, puis ensuite j'enchaine des prod stock sur la clause WITH AS et je vais utiliser des RECORDS pour stocker les valeurs et pouvoir les traiter.

j'ai fait une ebauche test mais j'ai un message

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Rapport d'erreur -
ORA-01403: aucune donnée trouvée
ORA-06512: à ligne 18
01403. 00000 -  "no data found"
Voici mon Bloc PL

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
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
DECLARE
 
type log is record(audittime TIMESTAMP,
                   duree INTEGER,
                   inter VARCHAR2(30),
                   pack VARCHAR2(20),
                   service VARCHAR2(50),
                   status INTEGER,
                   operation VARCHAR2(20),
                   errormsg VARCHAR2(200));
 
row log;
 
 
BEGIN
 
 
WITH TEST_DATA AS
  (SELECT AUDITTIMESTAMP,DURATION,STATUS,SERVICENAME,ERRORMESSAGE FROM wmservice 
          WHERE AUDITTIMESTAMP>=to_date('20160123','YYYYMMDD')
          AND AUDITTIMESTAMP<=to_date('20160127','YYYYMMDD')
          )
 
 
 
SELECT AUDITTIMESTAMP AS DATEDEBUT,
    TO_CHAR(TRUNC(DURATION/3600),'FM9900') || ':' ||
    TO_CHAR(TRUNC(MOD(DURATION,3600)/60),'FM00') || ':' ||
    TO_CHAR(MOD(DURATION,60),'FM00') as DUREE,
    'TEST' as INTERFACE,
    SUBSTR(SERVICENAME,1, INSTR(SERVICENAME,'.')-1) AS PACKAGE,
      SUBSTR(SERVICENAME, INSTR(SERVICENAME, '.')+1, INSTR(SERVICENAME, ':')-13) AS SERVICE,
       SUBSTR(SERVICENAME, INSTR(SERVICENAME,':')+1) AS OPERATION,
    STATUS,ERRORMESSAGE
 
    INTO row.audittime,row.duree,row.inter,row.pack,row.service,row.status,row.operation,row.errormsg
 
    FROM TEST_DATA
WHERE AUDITTIMESTAMP>=to_date('20160115','YYYYMMDD')
AND AUDITTIMESTAMP<=to_date('20160125','YYYYMMDD')
AND ( SERVICENAME LIKE 'TESTSERVICE')
AND STATUS = 4;
 
 
/* UTILISATION DE PROD STOCK et de UTL_FILE*/
 
  NULL;
END;
/
J'imagine que la clause WITH n'a pas fonctionné car la requete est correcte ( test ok )

Avez vous une idée du pourquoi ?
mon but est de creer des statistique pour generer plusieurs tableaux detaillé sur 3 niveau.

MERCI POUR VOTRE AIDE