Re: How to implement a dynamic string into a sql statement? - Mailing list pgsql-jdbc

From Lussier, Denis
Subject Re: How to implement a dynamic string into a sql statement?
Date
Msg-id CAHKhnVW++z5zYWowQDb-ev-SJ8TYc-vRamFONnfoCk9K6VorMw@mail.gmail.com
Whole thread Raw
In response to How to implement a dynamic string into a sql statement?  (howalt <howaltwil@web.de>)
Responses Re: How to implement a dynamic string into a sql statement?  (David G Johnston <david.g.johnston@gmail.com>)
List pgsql-jdbc
Don't use prepared statements for DDL.


On Tue, Aug 26, 2014 at 1:24 PM, howalt <howaltwil@web.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@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-jdbc

pgsql-jdbc by date:

Previous
From: howalt
Date:
Subject: How to implement a dynamic string into a sql statement?
Next
From: David G Johnston
Date:
Subject: Re: How to implement a dynamic string into a sql statement?