I am working on a code that uses JDBC to retrieve data from Oracle database. e,g, ResultSet rt = statement.executeQuery(sql); String s = rt.getString("User_ID") // it's 'N/A'. if( s.equals("N/A") System.out.println("...."); It is not equal! How come? It doesn show as N/A! Is this a data type conversion thing? Thanks, Kelly
while( rt.next()) String a = rt.getString("user_ID");.... And when I print out a, it did show up as N/A. But it deson't equal to N/A. When I used the compraeTo() method in String, it should a positive integer 97. Any idea? Thanks, Kelly
Suresh Selvaraj
Ranch Hand
Joined: Nov 14, 2000
Posts: 104
posted
0
Hi, I tried your example and it works fine. Here are the SQLs: insert into temp(User_Name) values('N/A'); I used JDBC to retrieve the User_Name and I get the String "N/A". Suresh Selvaraj
Suresh Selvaraj, (author of JQuiz)<br />SCJP2<br /><a href="http://www.decontconsulting.com" target="_blank" rel="nofollow">www.decontconsulting.com</a>
Lu Battist
Ranch Hand
Joined: Feb 17, 2003
Posts: 104
posted
0
Maybe the problem is extra spaces. Try: String s = null; while( rt.next()) { s = rt.getString("user_ID"); if (s != null) { s = (s.trim()).toUpperCase(); } if ( s.equals("N/A") ) { System.out.println("Equal"); } else { System.out.println("NotEqual s='"+s+"'"); } }
Peter den Haan
author
Ranch Hand
Joined: Apr 20, 2000
Posts: 3252
posted
0
If your field is varchar(N), then equals("N/A") should return true (provided that the field actually contains that string, that your query is right, etc). However, if your field is char(N), N<>3, then it won't as it'll be space-padded. - Peter
kundi kx
Greenhorn
Joined: Feb 03, 2003
Posts: 10
posted
0
I think Battist may be right. Print out the string fetched and decide your action from there. System.out.println("User_ID = '"+rt.getString("User_ID") +"'"); [ February 19, 2003: Message edited by: kundi kx ]
I agree. Here's the link: http://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to
run our stuff on 16 servers instead of 3.