Home > database >  how to set concatenated string parameter in preparedstatement
how to set concatenated string parameter in preparedstatement

Time:01-19

I have the following java code:

1- String sql="select * from mytable where params='file_name=?,report_name=?'"
2- stmt.setString(1, fileName);
3- stmt.setString(2, reportName);

I get the following exception in codeline 3-:

Invalid column index

What did I do wrong? how to set params correctly?

CodePudding user response:

Take the bind parameters out of the string literal:

String sql="select * from mytable where params='file_name=' || ? || ',report_name=' || ?"

Or, create a single bind parameter and pass in the concatenated value:

String sql="select * from mytable where params=?"
stmt.setString(1, "file_name="   fileName   ",report_name="   reportName);
  •  Tags:  
  • Related