Maybe your sample code wasn't copied correctly, but you don't seem to be 
setting most of the parameters?
(the first parameter in your ps.set* calls is always 1)

Maxime Lévesque wrote:
>
> I have this statement that throws an exception with this message : Unknown 
> data type: "?, ?"; SQL statement:
>
>     val ps =
>       connection.prepareStatement(
>         "Select " +
>         "  (case" +
>         "    when (a.streetname = ?) then ?" +
>         "    when (a.streetname = ?) then ?" +
>         "    else ?" +
>         "    end) as v3 " +
>         "From" +
>         "  address a")
>
>     ps.setString(1,"z")
>     ps.setInt(1,1)
>     ps.setString(1,"q")
>     ps.setInt(1,2)
>     ps.setInt(1,3)
>
>     ps.execute()
>
> I've seen in another post that a workaround is possible by putting
> values instead of ?, but this opens the door to sql injection.
> Is there another workaround ?
>
> Perhaps inserting cast statements around some or all of the arguments, like :
>
> when (cast ? as String) then  (cast ? as int) ... etc ?
>
> Another question, if I do :
>
> case
>   when cast( ? as String) then  cast( ? as int)
>   when cast( ? as String) then  cast( ? as BigDecimal)
>   otherwise cast(? as float)
>
> will the result be a BigDecimal ?
>
> BTW :  H2 rocks big time !
>
> Thanks
>
> -- 
> You received this message because you are subscribed to the Google Groups "H2 
> Database" group.
> To view this discussion on the web visit 
> https://groups.google.com/d/msg/h2-database/-/IXB69zFmTF0J.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/h2-database?hl=en.

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/h2-database?hl=en.

Reply via email to