java为oracle VARCHAR2返回空字符串值

标签 java oracle jdbc string varchar2

我有以下代码,它似乎工作正常,但它不显示 personCode 字符串的任何值。 PERSON_CODE 是 Oracle 9i 数据库中的 VARCHAR2。

我在我的项目中使用 Java SE 1.7 和 ojdbc7.jar。我是 Java 新手,有人可以给我一些帮助吗?

private static void GetEmployee(String input) {
String output = "";
Connection con=null;
PreparedStatement stmt = null;
String sql ="SELECT ALL BADGE_NUMBER, PERSON_CODE FROM BADGETABLE WHERE BADGE_NUMBER = ?";

try {
    //load driver
    Class.forName("oracle.jdbc.driver.OracleDriver");
    con=DriverManager.getConnection("jdbc:oracle:thin:username/password@host:1521:database");

    //declaring statement
    stmt = con.prepareStatement(sql);
    stmt.setString(1, input);

    // execute query
    ResultSet rows = stmt.executeQuery();

    int i = 0;
    while(rows.next()) {
        i++;
        String badgeCode = rows.getString(1);
        String personCode = rows.getString(2);
        String personType = rows.getString(3);
        System.out.println("Badge number: " + badgeCode);
        System.out.println("Employee ID: " + personCode);
    }
    System.out.println("Number of results: " + i);


    rows.close();    // All done with that resultset
    stmt.close();  // All done with that statement
    con.close();  // All done with that DB connection


}
catch (SQLException e) {
    System.err.println(e);
} 
catch (ClassNotFoundException e) {
    System.err.println(e);
}

return;
}

最佳答案

我使用以下方法遇到了同样的问题:

  1. Oracle 9i 企业版 64 位(JServer 版本 9.2.0.1.0 - 生产)
  2. JDBC 12.1.0.1.0 - ojdbc7.jar
  3. Java OpenJDK 64 位,1.7.0_09-icedtea

有一个这样的表: 创建表人( 名字 varchar2(60) );

使用 sqlline 进行这样的查询: select first_name,cast(substr(first_name,0,1) as char) from person;

结果集为 ["","S"]。

我的类路径上没有任何其他 Oracle jar,因为这对其他人来说是个问题,但是当我从 ojdbc7.jar 切换到 ojdbc6_g.jar 时,这个问题得到了解决。这是驱动程序版本 11.2.0.3.0,位于 12c 下载部分。

关于java为oracle VARCHAR2返回空字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17530909/

相关文章:

java - 实现 HttpSession 时的弃用警告

java - 列出组合

sql - Hibernate 创建标准两次连接同一个表 - 尝试了 2 种方法,但有 2 个差异错误

java - 使用JDBC和MySQL解决“通信链接失败”问题

java 。模拟数据访问对象

SQLite/JDBC 内连接

java - 如何使用 Log4j 使用 simpledb 附加程序

java - 如何在 Java 中打印二叉树?

sql - Oracle SQL - REGEXP_LIKE 包含 a-z 或 A-Z 以外的字符

sql - 透视结构表中的 Where 子句