Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa upitom (Comparisons between 'INTEGER' and 'CHAR' are not supported)

[es] :: Java :: Problem sa upitom (Comparisons between 'INTEGER' and 'CHAR' are not supported)

[ Pregleda: 1605 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dekifpi

Član broj: 233749
Poruke: 96
*.dynamic.isp.telekom.rs.



+1 Profil

icon Problem sa upitom (Comparisons between 'INTEGER' and 'CHAR' are not supported)29.11.2011. u 22:55 - pre 150 meseci
Pokusao sam da napisem query koji ce da ocita plate iz tabele vece od 1200 dinara. Ali negde gresim, pa u koliko neko zna gde je problem neka napise. Ostavljam vam sve podatke.

TABELA pr (ime baze plate):

Code:

CREATE TABLE pr(
ime varchar(20),
plata integer
);


KOD:
Code:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { 
                                        
DefaultTableModel model=(DefaultTableModel)jTable.getModel();
try{
    Class.forName("org.apache.derby.jdbc.ClientDriver");
    Connection con=(Connection)DriverManager.getConnection("jdbc:derby://localhost:1527/plate;create=true");
    Statement st=con.createStatement();
    
    int a = 1200;
    String broj=Integer.toString(a);
   
    String query="select PLATA from PR where PLATA>'"+broj+"'";
  
    ResultSet rs=st.executeQuery(query);
    while(rs.next()){
       
        String d1=rs.getInt("PLATA");
        
      
        model.addRow(new Object[]{d1});
    }
    rs.close();
    st.close();
    con.close();
}
catch(Exception e)
{
     e.printStackTrace();
}
}                    


GRESKA:

Code:

run:
java.sql.SQLSyntaxErrorException: Comparisons between 'INTEGER' and 'CHAR (UCS_BASIC)' are not supported. Types must be comparable. String types must also have matching collation. If collation does not match, a possible solution is to cast operands to force them to the default collation (e.g. SELECT tablename FROM sys.systables WHERE CAST(tablename AS VARCHAR(128)) = 'T1')
    at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown Source)
    at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
    at org.apache.derby.client.am.Statement.executeQuery(Unknown Source)
    at deki.jButton2ActionPerformed(deki.java:127)
    at deki.access$100(deki.java:4)
    at deki$2.actionPerformed(deki.java:51)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6504)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    at java.awt.Component.processEvent(Component.java:6269)
    at java.awt.Container.processEvent(Container.java:2229)
    at java.awt.Component.dispatchEventImpl(Component.java:4860)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4686)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    at java.awt.Container.dispatchEventImpl(Container.java:2273)
    at java.awt.Window.dispatchEventImpl(Window.java:2713)
    at java.awt.Component.dispatchEvent(Component.java:4686)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
    at java.awt.EventQueue.access$000(EventQueue.java:101)
    at java.awt.EventQueue$3.run(EventQueue.java:666)
    at java.awt.EventQueue$3.run(EventQueue.java:664)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:680)
    at java.awt.EventQueue$4.run(EventQueue.java:678)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: org.apache.derby.client.am.SqlException: Comparisons between 'INTEGER' and 'CHAR (UCS_BASIC)' are not supported. Types must be comparable. String types must also have matching collation. If collation does not match, a possible solution is to cast operands to force them to the default collation (e.g. SELECT tablename FROM sys.systables WHERE CAST(tablename AS VARCHAR(128)) = 'T1')
    at org.apache.derby.client.am.Statement.completeSqlca(Unknown Source)
    at org.apache.derby.client.net.NetStatementReply.parsePrepareError(Unknown Source)
    at org.apache.derby.client.net.NetStatementReply.parsePRPSQLSTTreply(Unknown Source)
    at org.apache.derby.client.net.NetStatementReply.readPrepareDescribeOutput(Unknown Source)
    at org.apache.derby.client.net.StatementReply.readPrepareDescribeOutput(Unknown Source)
    at org.apache.derby.client.net.NetStatement.readPrepareDescribeOutput_(Unknown Source)
    at org.apache.derby.client.am.Statement.readPrepareDescribeOutput(Unknown Source)
    at org.apache.derby.client.am.Statement.flowExecute(Unknown Source)
    at org.apache.derby.client.am.Statement.executeQueryX(Unknown Source)
    ... 40 more
BUILD SUCCESSFUL (total time: 2 seconds)
 
Odgovor na temu

nemnesic
nemnesic
Software Developer
Vranje Florida

Moderator
Član broj: 44355
Poruke: 802
*.ga.at.cox.net.



+64 Profil

icon Re: Problem sa upitom (Comparisons between 'INTEGER' and 'CHAR' are not supported)29.11.2011. u 23:05 - pre 150 meseci
nisam probao ovo ali mozda umesto

Code:
String query="select PLATA from PR where PLATA>'"+broj+"'";


stavis ovo

Code:
String query="select PLATA from PR where PLATA>"+broj;


inace ovo nije dobar nacin da pises Query

pogledaj PreparedStatements http://docs.oracle.com/javase/...ava/sql/PreparedStatement.html
 
Odgovor na temu

dekifpi

Član broj: 233749
Poruke: 96
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Problem sa upitom (Comparisons between 'INTEGER' and 'CHAR' are not supported)29.11.2011. u 23:14 - pre 150 meseci
Hvala puno nemnesic :) u tome je bio problem. A hvala i na linku, proucicu detaljno. P.S. I ja sam iz Vranja :)
 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
*.dynamic.isp.telekom.rs.

Sajt: biske.rs


+39 Profil

icon Re: Problem sa upitom (Comparisons between 'INTEGER' and 'CHAR' are not supported)29.11.2011. u 23:23 - pre 150 meseci
Pisalo je sve u poruci o grešci koju si dobio. Problem je bio što se celobrojne tj. integer vrednosti ne stavljaju pod jednostrukim navodnicima, jednostruki navodnici se koriste za char.
 
Odgovor na temu

dekifpi

Član broj: 233749
Poruke: 96
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Problem sa upitom (Comparisons between 'INTEGER' and 'CHAR' are not supported)29.11.2011. u 23:30 - pre 150 meseci
Znam da se koriste za char, ali mi je to ovog puta promaklo, na zalost.
 
Odgovor na temu

[es] :: Java :: Problem sa upitom (Comparisons between 'INTEGER' and 'CHAR' are not supported)

[ Pregleda: 1605 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.