rfbarrozo 0 Denunciar post Postado Abril 20, 2010 Amigos. O que está errado no comando abaixo. Como seria a sintaxe correta do Oracle. Obrigado. SELECT CASE WHEN TM.NOM_CHAMP = 'SYNCHRO_MAPAIE' then BEGIN GET_DOMAINEVALEUR ( 2008081 , TM.OLD_VALUE ) AS OLD_VALUE ; GET_DOMAINEVALEUR ( 2008081 , TM.NEW_VALUE ) AS NEW_VALUE ; END; ELSE BEGIN TM.OLD_VALUE; TM.NEW_VALUE END END FROM G_TRACEMODIF TM WHERE NOM_CHAMP LIKE '%MAPAIE%' Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 20, 2010 Solto assim é meio difícil mas um CASE só pode retornar um valor. Então : SELECT (CASE WHEN TM.NOM_CHAMP = 'SYNCHRO_MAPAIE' then GET_DOMAINEVALEUR ( 2008081 , TM.OLD_VALUE ) ELSE TM.OLD_VALUE END) OLDVALUE, .... Ajudou ? Compartilhar este post Link para o post Compartilhar em outros sites
rfbarrozo 0 Denunciar post Postado Abril 20, 2010 Esta seria a única forma? Este comando funciona perfeitamente. Tem como melhorar? SELECT CASE WHEN TM.NOM_CHAMP = 'SYNCHRO_MAPAIE' then GET_DOMAINEVALEUR( 2008081 , TM.OLD_VALUE ) ELSE TM.OLD_VALUE END AS OLD_VALUE, CASE WHEN TM.NOM_CHAMP = 'SYNCHRO_MAPAIE' then GET_DOMAINEVALEUR( 2008081 , TM.NEW_VALUE ) ELSE END AS NEW_VALUE FROM G_TRACEMODIF TM WHERE NOM_CHAMP LIKE '%MAPAIE%' Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 21, 2010 Que me ocorra, não. Compartilhar este post Link para o post Compartilhar em outros sites
rfbarrozo 0 Denunciar post Postado Abril 21, 2010 OK! Obrigado Compartilhar este post Link para o post Compartilhar em outros sites