A. Wolf
A. Wolf

Reputation: 1347

SQL command not properly ended with select

I'm working with Oracle SQL Developer with a Java application. I want to ask to the DB this query:

select * from vocabolario, vocaboli_help where verbo=1 and 
 vocabolario.id = vocaboli_help.id and vocaboli_help.usato = 0

The query works when I run it from SQL developer, but when run it from Eclipse with the stmt.executeQuery(string), where stmt is a Statement object, it throws the following exception: SQL command not properly ended. I put also a semicolon at the end of the string, but it doesn't work.

I used the stmt.executeQuery(string) with other queries and in those cases there were no problems. The only difference I can see is that in this case I have where condition in AND.

Java code :

private final static String NOME_DATABASE = "VOCABOLARIO", NOME_DATABASE_HELP ="VOCABOLI_HELP";
String type ="verbo";
    String query = "SELECT * FROM " + NOME_DATABASE + ", " + NOME_DATABASE_HELP +" WHERE " + type + " = 1 " +
                "AND " + NOME_DATABASE +".ID = " + NOME_DATABASE_HELP +".ID AND "+NOME_DATABASE_HELP+".USATO = 0";
    System.out.println(query);
    int cont = 0; 
    String result=""; 
    try {
        ResultSet res = statement.executeQuery(query);
        while(res.next()) {
            String cod = res.getString("ID").trim();
            String voc = res.getString("VOCABOLO").trim();
            String trad = res.getString("TRADUZIONE").trim();

            if(cont == n)
                result = cod + "," + voc + "," + trad;

            cont++; 
        }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return result; 

`

Upvotes: 0

Views: 733

Answers (2)

A. Wolf
A. Wolf

Reputation: 1347

Thank you all, the problem was in the name of the second table, but I think it depends on Java code sintax, as @are suggested. I updated the code:

private static final String NOME_DATABASE_HELP = "VOCABOLIHELP"

I also modified the table name in the DB and now it works. I think there are issues with the underscore in the name (the problem is only in Java as I said), I don't know why.

Upvotes: 0

Burak Karasoy
Burak Karasoy

Reputation: 1690

select * from vocabolario vo
left join vocaboli_help voh
on vo.id= voh.id
where v.verbo=1 AND voh.usato=0

You just need a simple join.

VOCABOLI_HELP or vocabolario_help your code and your post different

Upvotes: 1

Related Questions