java 中怎么把接收到的sql语句中的相指定字符串替换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 中怎么把接收到的sql语句中的相指定字符串替换相关的知识,希望对你有一定的参考价值。

接收到的sql:select to_char(date(rq)-1,'%Y%m%d') rq,bmbh,bmmc,sum(nvl(ck_dwhq,0))/(date('20140630')-date('20140101')+1) ck_dwhq from bmhbkhzbb where (rq between '20140101' and '20140630') and hbzl='00' group by rq,bmbh,bmmc
要求替换为:select to_char(to_date(rq,'yyyymmdd')-1,'yyyymmdd') rq,bmbh,bmmc,sum(nvl(ck_dwhq,0))/(to_date('20140630','yyyymmdd')-to_date('20140101','yyyymmdd')+1) ck_dwhq from bmhbkhzbb where (rq between '20140101' and '20140630') and hbzl='00' group by rq,bmbh,bmmc
我现在是把一个Informix项目转换为一个oracle项目,接收到的语法是informix的,我要换成oracle的,我现在写了一个接口,在执行sql之前进行替换,请高手指教,谢谢!

参考技术A 可以把接受到的sql转成String类型,然后用replaceAll("原字符","替换后的字符"); 参考技术B 你这个工作量很大的.. . 要分析informix和oracle的语法的不同 .. 还不如换掉 DAO的接口算了啊...
Oracle的DAO实现类 来完成这些工作追问

我就是写了一个DAO的接口,每sql语句执行前都用这个接口替换语法的,sql也是转换成字符串的
就是不知道replaceAll(" ", " ");或者是正则表达式怎么写最准确

追答

写了DAO之后 就直接换SQL了 还用这些代替干什么 ?? 你自己写ORACLE的SQL

追问

项目里面全是按informix的语法写的,成千上万的sql,现在只是换一个oracle数据库,只有在访问数据库的时候替换啊

mssql中一个简单的模糊查询语句怎么写请教大侠们

使用SQL 通配符可以替代一个或多个字符,即模糊查询。

SQL 通配符必须与 LIKE 运算符一起使用。在 SQL 中,可使用以下通配符如下:

1、%    替代一个或多个字符    

2、_    仅替代一个字符    

3、[charlist]    字符列中的任何单一字符    

4、[^charlist]或者[!charlist] 不在字符列中的任何单一字符

以图中表格为例,说明一下各通配符用法

1、 查询居住在以 "Ne" 开始的城市里的人:

SELECT * FROM Persons WHERE City LIKE \'Ne%\'

2、查询居住在包含 "lond" 的城市里的人:

SELECT * FROM Persons WHERE City LIKE \'%lond%\'

3、查询名字的第一个字符之后是 "eorge" 的人:

SELECT * FROM Persons WHERE FirstName LIKE \'_eorge\'

4、查询记录的姓氏以 "C" 开头,然后是一个任意字符,然后是 "r",然后是任意字符,然后是 "er":

SELECT * FROM Persons WHERE LastName LIKE \'C_r_er\'

5、查询居住的城市以 "A" 或 "L" 或 "N" 开头的人:

SELECT * FROM Persons WHERE City LIKE \'[ALN]%\'

6、查询居住的城市不以 "A" 或 "L" 或 "N" 开头的人:

SELECT * FROM Persons WHERE City LIKE \'[!ALN]%\'

参考技术A select * from 表名 where 字段名 like '%参数%' 参考技术B 模糊查询 只能通过 like

以上是关于java 中怎么把接收到的sql语句中的相指定字符串替换的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句中, 怎样把日期转为字符串?

Java中怎么在页面中取值后放到SQL语句中

sql server2008里面的image类型,怎么向里面放图片啊,还有java里面如何把图片读出来

Oracle sql语句把字段中的某个字符去掉

在sql语句中怎么判断一个字段是不是包含在另一个字符串中

如何将从接口取到的json数据存入mysql数据库