java - 结果集不返回具有特殊字符 /- 的值,
问题描述
我的 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();
}
}
}
以上返回的值:-
- ID = 1;
- 名称 = "";
- 地址 = "";
- 国家=“某个国家”;
请提出一些建议来检索两个缺失列的值。
解决方案
这种情况下的问题是由于使用了不匹配版本的 ojdbc jar 和安装的 db。一旦我弄清楚了这一点并使用了正确版本的 jar,问题就得到了解决。
推荐阅读
- node.js - Laravel/Vue/Heroku - 不支持作为平台 linux 跳过“fsevents”构建
- reactjs - 从 github 克隆后使用 create-react-app 创建的应用程序无法正常工作
- python - 合并数据帧后如何避免获得额外的不匹配值?
- python - Numba - 字符串类型
- r - 使用for循环在R中进行子集化
- javascript - 我们如何从服务器创建警告消息?
- c - TCP Socket - 如何连接到服务器套接字,然后关闭它并再次连接?
- r - 如何在删除行时不更改列名
- neo4j - 查询以写入跃点并从中间节点返回所有属性,还是更好的方法来完成并跳过跃点?
- oracle - 使用 SDO_CONTAINS 的 Oracle Spatial Query 结果不一致