oracle不需要账号登录oracle查询带有单引号的

oracle查询带有单引号的

 

一条查询语句 

select * from table where a ='['0','女'],['1','男']'; 

后来通过查资料用chr(39)来转换单引号格式可以写成这样: 

select '['||chr(39)||'0'||chr(39)||','||chr(39)||'女'||chr(39)||']'|| 

','||'['||chr(39)||'1'||chr(39)||','oracle账号||chr(39)||'男'||chr(39)||']'  translation from dual这样查询是没有问题的。所以得想办法将客户端参数转义。 

String Strinfo="['0','女'],['1','男']"; 

StringBuffer str = new StringBuffer(); 

for(int i=0;i<Strinfo.length();i++) 

String ss =Convert.ToString(Strinfo.charAt(i)); 

if(ss.equalsIgnoreCase("[")){ 

str.append("'['||"); 

else if(ss.equalsIgnoreCase("'")){ 

str.append("chr(39)||"); 

else if(ss.equalsIgnoreCase("]")){ 

if(i!=Strinfo.length()-1){ 

str.append("']'||"); 

else{ 

str.append("']'"); 

else{ 

str.append("'"+Strinfo.charAt(i)+"'||"); 

 

通过以上方法我们就可以查询了。 

select * from table where a in (select '['||chr(39)||'0'||chr(39)||','||chr(39)||'女'||chr(39)||']'|| 

','||'['||chr(39)||'1'||chr(39)||','||chr(39)||'男'||chr(39)||']'  translation) 

 

此条目发表在oracle metalink账号分类目录,贴了标签。将固定链接加入收藏夹。