Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

mulesoft - How to add a dynamic parameter in Mule4 Select Query

I have a SELECT query for which the entire WHERE condition is coming from a Java class. How can I use the entire WHERE condition in the SELECT query? This is what I tried:

SELECT * FROM EMPLOYEE_TABLE WHERE 1=1 #[payload]

Here payload is a WHERE clause coming from a Java class: NAME = VKP AND STATE = PA AND CITY = KOP

I am getting an error message like " parameter null was not bound for query select…", but I am able to see the payload value coming out from the Java class and in the logs.

question from:https://stackoverflow.com/questions/65908796/how-to-add-a-dynamic-parameter-in-mule4-select-query

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You should not use an expression directly in the query. Instead assign the query in an expression to a variable, then use the variable as the query.

For example something like:

    <set-variable value="#['SELECT * FROM EMPLOYEE_TABLE WHERE 1=1 ' ++ payload]" name="query" />
    <db:select ...>
        <db:sql>#[vars.query]</db:sql>
    </db:select>

Note that you risk having SQL injections vulnerabilities doing this.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...