当前位置:数据库 > 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)||','||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
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,