首页 > 解决方案 > 结果集不返回具有特殊字符 /- 的值,

问题描述

我的 oracle db 表中的某些列具有特殊字符的值。示例值:

| 1 | 能源部,约翰 | 44/3 演示城市 | 某国 |

当我从我的 java (jdbc) 代码中查询数据库时,我得到第 2 列和第 3 列的空字符串 ("") 并且没有返回错误。其他两列的值是正确的。


package pack;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Tester {
    
    static String url = "jdbc:oracle:thin:@domain:1521:pid";
    static String user = "userid";
    static String pwd = "password";

    public static void main(String[] args) {
        
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        
        String id = "1";    // I am receiving id value in method as parameter for reproducing purpose i am hardcoding it;
        
        String query = "SELECT * FROM EMPLOYEE WHERE ID =" + id;
        
        String name = "";
        String address = ""; 
        String country = "";

        try {
            conn = DriverManager.getConnection(url,user,pwd);
            stmt = conn.createStatement();
            rs = stmt.executeQuery(query);
            
            while(rs.next()) {
                
                name = rs.getString(2);
                address = rs.getString(3);
                country = rs.getString(4);
            }
            
            System.out.println("Name: "+name+"  Address:  "+address+"  Country:  "+country);
        }catch(Exception e) {
            e.printStackTrace();
        }
        
    }

    
}


以上返回的值:-

请提出一些建议来检索两个缺失列的值。

标签: javajdbc

解决方案


这种情况下的问题是由于使用了不匹配版本的 ojdbc jar 和安装的 db。一旦我弄清楚了这一点并使用了正确版本的 jar,问题就得到了解决。


推荐阅读