From: | "Lussier, Denis" <denisl(at)openscg(dot)com> |
---|---|
To: | howalt <howaltwil(at)web(dot)de> |
Cc: | List <pgsql-jdbc(at)postgresql(dot)org> |
Subject: | Re: How to implement a dynamic string into a sql statement? |
Date: | 2014-08-26 17:37:04 |
Message-ID: | CAHKhnVW++z5zYWowQDb-ev-SJ8TYc-vRamFONnfoCk9K6VorMw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
Don't use prepared statements for DDL.
On Tue, Aug 26, 2014 at 1:24 PM, howalt <howaltwil(at)web(dot)de> wrote:
> Hello Mailinglist! :-)
>
> I have some spatial datasets which are availabe in a opensource metadata
> catalog software GeoNetwork and in a PostGIS database. The problem is that
> the student who created the database used different IDs for the same
> datasets. So the IDs in the GeoNetwork differs from the IDs in the postGIS
> database. They only have the same name
>
> So, if someone uploads a new dataset into GeoNetwork, the same dataset is
> uploaded into a postGis database too.
>
> Now I want to add a ID column into the database to give the field the same
> ID like the ID in geonetwork. I think I can only do this with using the
> filename cause they are same in both cases.
>
> Now I want to alter the table in eclipse with following code:
>
> Connection con = null;
> PreparedStatement ps = null;
> final String sqlps = "ALTER TABLE ? ADD COLUMN ?";
>
> String filen = filename.substring(0, filename.indexOf('.'));
> try {
> con = DriverManager.getConnection("
> jdbc:postgresql_postGIS://localhost:5433/testdb?user=
> postgres&password=test");
> try {
> ps = con.prepareStatement(sqlps);
> ps.setString(1, filen);
> ps.setString(2, "GN_ID");
>
> ps.execute();
>
> But this does not work cause I am getting the following
> Exception:org.postgresql.util.PSQLException: ERROR: syntax error at »$1«
> Position: 13
>
> So, it seems that PSQL has problems with the ? in the prepared statement.
> Does anyone know a solution for this problem?
>
> I also tried using normale statement, but this is giving me a findbug
> error that I try to pass a nonconstant string to an execute method on an
> sql statement. So I really dont know how to get rid of this problem
>
> Thank you in advance for every help
>
>
>
> --
> Sent via pgsql-jdbc mailing list (pgsql-jdbc(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-jdbc
>
From | Date | Subject | |
---|---|---|---|
Next Message | David G Johnston | 2014-08-26 18:26:58 | Re: How to implement a dynamic string into a sql statement? |
Previous Message | howalt | 2014-08-26 17:24:27 | How to implement a dynamic string into a sql statement? |