Re: Fw: how to resolve org.postgresql.util.PSQLException: ERROR: operator does not exist: text = integer?
Karen Goh <[email protected]> Tue, 16 Jul 2019 08:21:20 +0000 (UTC)
| Newsgroups | gmane.comp.db.postgresql.sql |
|---|---|
| Message-ID | <[email protected]> |
Can I know which forum to post to cos I think this may be the wrong forum. Cos it is sql so this forum maybe for sql execute inside the database. However, I read there is no more jdbc forum, correct me if I am wrong. Sent from Yahoo Mail for iPhone On Tuesday, July 16, 2019, 2:25 PM, Martin Stöcker <[email protected]> wrote: Hi, please post your statement but not all this java stuff. Nobody knows the type and content of your builder varaible. Regards Martin Am 16.07.2019 um 08:17 schrieb Karen Goh: Hi, This is a continuation of my last problem - not sure if I should write from there cos the first part was solved with the help from this group. I was trying to get the matching tutor_id with the parameter values which is in this case subject_names from a table which contains both the tutor_id and the subject_names. Here's the error message: org.postgresql.util.PSQLException: ERROR: operator does not exist: text = integer Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts. Position: 69 atorg.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2433) atorg.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2178) atorg.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:306) at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:441) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:365) atorg.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:155) atorg.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:118) at Controller.searchController.doPost(searchController.java:108) Here's the code snippet which I do not know where I had gone wrong: String sql1 = "select tutor_id, subject_name from tutor_subject where subject_name in (" + builder.deleteCharAt(builder.length() - 1).toString() + ")"; PreparedStatement ps2 = connection.prepareStatement(sql1); HashMap<Integer, ArrayList<String>> tutorSubject = new HashMap<Integer, ArrayList<String>>(); for(String item : subjs) { int tutor_id = tutor.getTutor_id(); ps2.setInt(1, tutor_id); if (item != null) { subjs.add(item); ps2.setString(2, item); } ps2.executeQuery(); while (rs.next()) { tutor_id = rs.getInt("tutor_id"); subjs.add(rs.getString("subject_name")); tutorSubject.put(tutor_id, subjs); System.out.println(tutorSubject); } System.out.println("tutor ID=" + rs.getInt("tutor_id") + ", subjectName=" + rs.getString("subject_name")); Hope someone could point out my mistake. Thanks. Sent from Yahoo Mail for iPhone Begin forwarded message: On Tuesday, July 16, 2019, 2:14 PM, Karen Goh <[email protected]> wrote: Attn to all: For sone kind of strange reason I do not know why the mail is not sent to all. I have normally wrote n replied to the last person who wrote but yahoo mail didn’t let me write at there. Hope everyone receives this mail this time round. N please help me. Tks! Sent from Yahoo Mail for iPhone Begin forwarded message: On Tuesday, July 16, 2019, 1:01 PM, David G. Johnston <[email protected]> wrote: On Mon, Jul 15, 2019 at 6:59 PM Karen Goh <[email protected]> wrote: May I know why did you say I am comparing subject_name to an integer ? I am trying to get both tutor_id and subject_name from the same table based on the no of ? in subjectName as per parameterValues. Again, you need to send messages to the mailing, not me personally. That said you might want to first figure out what: ps2.setInt(1, tutor_id); is supposed to accomplish in your code. David J. -- Widdersdorfer Str. 415, 50933 Köln; Tel. +49 / 221 / 9544 010 HRB Köln HRB 75439, Geschäftsführer: Dr. Dirk Goldner