Bonjour,

J'ai un petit soucis, j'ai une évolution à réaliser sur un script de création de table et je cherche à paramétrer ma fonction decode.

Voici le code concerné :
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
CREATE TABLE STAT.RAA_RAWDATA_AGENT 
as 
select 
 SEQ_RAA_RAWDATA_AGENT.nextval PK_RAA_ID,
 to_number(TO_CHAR(STA_D_DATE, 'YYYYMMDDhh24')) FK_DAT_ID,
 STA_A_ACTION ACTION, 
 STA_C_AGENT_ID SAGES_AGENT,        
 STA_C_TYPE_AGENT TYPE_AGENT,
 STA_D_DATE DATE_PUBLICATION,
 decode(STA_C_TYPE_AGENT, 'DGI',
  decode (SUBSTR(STA_C_AGENT_ID,1, 7), 'A457V05', STA_C_AGENT_ID, 

                                       substr(STA_C_AGENT_ID,1, 7)),STA_C_AGENT_ID) ENTITY_ID,
  decode(STA_C_TYPE_AGENT, 'DGI',      
        decode (SUBSTR(STA_C_AGENT_ID,1, 4), 'B210A', STA_C_AGENT_ID, 
                                substr(STA_C_AGENT_ID,1, 10)),STA_C_AGENT_ID) ENTITY_ID,
 STA_A_VAR1 VAR_1,             
 STA_A_VAR2 VAR_2,             
 STA_A_VAR3 VAR_3,             
 STA_A_VAR4 VAR_4,             
 STA_A_VAR5 VAR_5
 from STA_AGENT
 where STA_C_AGENT_ID not in 
  (SELECT EHA_AGENT_ID 
   FROM STAT.EHA_ENTITE_HYPERVISION_AGENT )
Ce que j'ai fais moi, j'ai dupliqué la fonction décode pour qu'elle réponde à mes nouveau critères. Sauf que là la création de la table est impossible vue que la colonne ENTITY_ID est crée 2 fois. Est il possible de mettre plusieurs condition dans 1 balise decode?

Ce que je voudrai en faite est que si les 4 premiers caractères de STA_C_AGENT_ID est égale a B210A alors je copie tous le champs sinon je ne prend que les 7 premiers caractère.

Merci pour votre aide, je peux donner plus de précisions si ce n'est pas claire.

Thomas.