这是我的代码,我在oracle中有一列称为产品ID,数据类型为CHAR(6字节)。我已经为该列使用了设置字符串方法来从数据库检索详细信息。实际上,我将结果集设置为false(它为空),并且没有获取任何记录。但是当使用'PRODUCT_ID =“ + value +”'时,它可以工作。如何解决这个问题。
sSQL="SELECT * FROM CART_VIEW WHERE PRODUCT_ID=? AND PRODUCT_NAME=? ";
ps=conn.prepareStatement(sSQL);
ps.setString(++i, sProductId);
ps.setString(++i, sProductName);
rs=ps.executeQuery();
列格式CHAR(6)表示(与VARCHAR2格式相反)小于6个字节的字符串用空白填充。即您必须在字符串的末尾提供到字符串的确切长度的字符串。
如果在XX CHAR(6)
列中插入'X'的示例
-- returns nothing
select * from test where xx = 'X';
-- returns a row
select * from test where xx = 'X ';
即您必须在setString中传递完整长度的字符串。