On Mon, May 30, 2011 at 8:39 AM, Simon Mitchell <simon@jseb.com> wrote:
> jdbc driver issue for PreparedStatement error for date parameter with
> overlaps
> // some bad code
> sqlText = "SELECT (date ?, date ?) OVERLAPS (date ?, date ?);";
> System.out.println("Executing this command: "+sqlText+"\n");
> PreparedStatement prs = db.prepareStatement(sqlText);
> prs.setString(1,"2001-02-16");
> prs.setString(2,"2001-12-21");
> prs.setString(3,"2001-10-30");
> prs.setString(4,"2002-10-30");
> System.out.println("Executing this command: "+ prs.toString() +"\n");
> ResultSet results = prs.executeQuery();
> // error
> ***Exception:
> org.postgresql.util.PSQLException: ERROR: syntax error at or near "$1"
> Position: 14
> Found a work around, changing the query to include brackets around the
> question marks works.
> sqlText = "SELECT (date (?), date (?)) OVERLAPS (date (?), date (?))";
> Is this a bug?
> --
> simon
>
Doesn't look like a bug. I don't think you can write that SQL in psql.
Dave Cramer
dave.cramer(at)credativ(dot)ca
http://www.credativ.ca