Thread: Problem with string parameters

Problem with string parameters

From
"RichT"
Date:
Can anyone help with this?

I am using Postgres 7.4.13 JDBC interface and I get
"PSQLException: Parameter index out of range."

The query is:
INSERT INTO shm_log_sources
SELECT ? as name, ci.source_id, true as active, true as monitor,
    0 as alerts_sent, '' as comment
FROM shm_current_ids ci LEFT OUTER JOIN shm_log_sources ls
    ON ci.source_id = ls.source_id AND ls.name = ?
WHERE ls.active IS NULL

The code does
pStmt = conn.prepareStatement(query);
pStmt.clearParameters();
...
int paramNo = 1;
pStmt.setString(paramNo, monitorName);
...
paramNo++;
pStmt.setString(paramNo, monitorName);

Where monitorName is the String "SourceHealth"

Why do I get the exception?


Re: Problem with string parameters

From
Giuseppe Sacco
Date:
Il giorno sab, 24/03/2007 alle 12.35 -0700, RichT ha scritto:
> Can anyone help with this?
>
> I am using Postgres 7.4.13 JDBC interface and I get
> "PSQLException: Parameter index out of range."
>
> The query is:
> INSERT INTO shm_log_sources
> SELECT ? as name, ci.source_id, true as active, true as monitor,
>     0 as alerts_sent, '' as comment
> FROM shm_current_ids ci LEFT OUTER JOIN shm_log_sources ls
>     ON ci.source_id = ls.source_id AND ls.name = ?
> WHERE ls.active IS NULL
[...]

I think you may only bind variable in the WHERE clause. You cannot bud
variable in the SELECT part.

Bye,
Giuseppe