Re: Fw: how to resolve org.postgresql.util.PSQLException: ERROR: operator does not exist: text = integer?
Martin Stöcker <[email protected]> Tue, 16 Jul 2019 08:25:17 +0200
| Newsgroups | gmane.comp.db.postgresql.sql |
|---|---|
| Message-ID | <[email protected]> |
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
> at
> org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2433)
> at
> org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2178)
> at
> org.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)
> at
> org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:155)
> at
> org.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
> <https://overview.mail.yahoo.com/?.src=iOS>
>
> 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
> <https://overview.mail.yahoo.com/?.src=iOS>
>
> 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] <mailto:[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