Oracle大师进:JDBC连接Oracle查不到数据
问题情形:两个字段:一个sip_uuid[varchar2(100)],其值为3c7e4339-c45e-4508-bf32-92beb3dd7233;一个req_or_...
问题情形:
两个字段:
一个sip_uuid [varchar2(100)], 其值为3c7e4339-c45e-4508-bf32-92beb3dd7233;
一个 req_or_res [number[4]] 其值为0
我用如下
String sql="select * from msg_in t where req_or_res =0 and sip_uuid='3c7e4339-c45e-4508-bf32-92beb3dd7233'";
preparestamet.executeQuery(sql);
Result 为空!!
单独查这两个字段中任何一个都能查出来,用这个语句在PL/SQL中也能查出来,但是用JDBC时便查不出来!
难道是因为这个req_or_res字段中含有个or???
有没有人遇到这种情况! 展开
两个字段:
一个sip_uuid [varchar2(100)], 其值为3c7e4339-c45e-4508-bf32-92beb3dd7233;
一个 req_or_res [number[4]] 其值为0
我用如下
String sql="select * from msg_in t where req_or_res =0 and sip_uuid='3c7e4339-c45e-4508-bf32-92beb3dd7233'";
preparestamet.executeQuery(sql);
Result 为空!!
单独查这两个字段中任何一个都能查出来,用这个语句在PL/SQL中也能查出来,但是用JDBC时便查不出来!
难道是因为这个req_or_res字段中含有个or???
有没有人遇到这种情况! 展开
3个回答
展开全部
// 尝试把单引号具体的值分隔开来试试。
String sql="select * from msg_in t where req_or_res =0 and sip_uuid='"+"3c7e4339-c45e-4508-bf32-92beb3dd7233+"'";
preparestamet.executeQuery(sql);
另外,根据你的描述在PL/SQL上可以正常运行并得到结果,那就说明这条SQL语句是没有问题的。此时你应该检查JAVA语法的问题,或者说写法是否正确。
追问
我确认不是语法问题,因为我把req_or_res换成表内其他字段,就没问题了,唯独是req_or_res这个字段加其他字段就不行了。
追答
有没有尝试过req_or_res这个字段直接在PL/SQL里查询是否有问题?
展开全部
确定:select * from msg_in t where req_or_res =0 and sip_uuid='3c7e4339-c45e-4508-bf32-92beb3dd7233' 能在PL/SQL里面查询到数据
把sql 写成动态的:
public list select(int req_or_res,String sip_uuid){
String sql="select * from msg_in t where req_or_res ="+req_or_res+" and sip_uuid="+sip_uuid+"";
}
或
public list select(){
int req_or_res=0;
String sip_uuid="3c7e4339-c45e-4508-bf32-92beb3dd7233";
String sql="select * from msg_in t where req_or_res ="+req_or_res+" and sip_uuid="+sip_uuid+"";
}
把sql 写成动态的:
public list select(int req_or_res,String sip_uuid){
String sql="select * from msg_in t where req_or_res ="+req_or_res+" and sip_uuid="+sip_uuid+"";
}
或
public list select(){
int req_or_res=0;
String sip_uuid="3c7e4339-c45e-4508-bf32-92beb3dd7233";
String sql="select * from msg_in t where req_or_res ="+req_or_res+" and sip_uuid="+sip_uuid+"";
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from msg_in t where req_or_res =0 and sip_uuid='3c7e4339-c45e-4508-bf32-92beb3dd7233'
把上面的字段名修改成大写的试试
select * from MSG_IN t where REQ_OR_RES=0 and SIP_UUID='3c7e4339-c45e-4508-bf32-92beb3dd7233'
把上面的字段名修改成大写的试试
select * from MSG_IN t where REQ_OR_RES=0 and SIP_UUID='3c7e4339-c45e-4508-bf32-92beb3dd7233'
追问
不行。这跟大小写关系不大,我现在就怀疑是req_or_res这个字段有问题。
追答
你这个字段是字符窜类型还是数字类型?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询