这是我的代码,我在oracle中有一个名为Product Id和数据类型为CHAR(6字节)的列。我已使用此列的set string方法从Database中检索详细信息。实际上我将结果设置为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();
答案 0 :(得分:2)
列格式CHAR(6)表示(与VARCHAR2格式相反)短于6个字节的字符串是空白填充的。即你必须在一个全长的空白填充中提供字符串。
如果您插入' X'在专栏
中 -- return nothing
select * from test where xx = 'X';
-- returns a row
select * from test where xx = 'X ';
即。你必须传入setString的全长字符串。