2017-02-16 1 views
1

Je voudrais générer la requête qui aboutit à l'identificateur de bénéficiaire 'ABC123' avec d'autres entrées si elles étaient également données. Supposons que si la valeur de la devise est donnée, je souhaite inclure la condition de devise dans la requête JOIN, ainsi que la catégorie. J'ai l'extrait de code suivant dans le script SOAP UI Groovy. Quand la devise et la catégorie ne sont pas données, j'aimerais que la requête suivante s'exécute et obtienne-moi les résultats.Paramètre de variable dynamique dans une requête mysql statique utilisant le savon groovy ui

select CORR.Preferred as preferred ,CORR.Category as category,CORR.Currency as currency\ 
from BENEFICIARY CORR \ 
JOIN LOCATION LOC on CORR.UID=LOC.UID and CORR.BeneficiaryID LIKE 'ABC123' 

et quand la monnaie et la catégorie sont donnée (USD & commercial), puis la requête suivante.

select CORR.Preferred as preferred ,CORR.Category as category,CORR.Currency as currency\ 
from BENEFICIARY CORR \ 
JOIN LOCATION LOC on CORR.UID=LOC.UID and CORR.BeneficiaryID LIKE 'ABC123' and CORR.Currency LIKE 'USD' and CORR.Category LIKE 'Commercial' 

Tout ce que je pouvais voir sur le résultat de Outputrows.size() est égal à zéro (0).

Pouvez-vous s'il vous plaît me corriger où je fais mal.

Merci.

Répondre

0

Ici est changé le script.

Depuis le problème de construire simplement une requête, mettre seulement cette partie supprimer sql partie d'exécution que ce n'est pas vraiment le problème.

//Define the values or remove if you get those value from somewhere else 
//Just put them here to demonstrate 
//You may also try by empty value to make sure you are getting the right query 
def currencyValue = 'USD' 
def categoryValue = 'Commercial' 
def query = 'select CORR.Preferred as preferred, CORR.Category as category,CORR.Currency as currency from BENEFICIARY CORR JOIN LOCATION LOC on CORR.UID = LOC.UID and CORR.BeneficiaryID LIKE \'ABC123\'' 
currencyValue ? (query += " and CORR.Currency LIKE '${currencyValue}'") : query 
categoryValue ? (query += " and CORR.Category LIKE '${categoryValue}'") : query 
log.info "Final query is \n ${query}" 

Vous pouvez simplement passer à query plus où vous devez exécuter le sql, disent sql.rows(query)

Vous peut rapidement essayer Demo

+0

Merci Rao .. ce que je travaille à l'intention être. – Y5288