mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
improved sql parser, support translate oracle to mysql
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
package com.alibaba.druid.bvt.sql.oracle.tomysql;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
|
||||
public class OracleToMySql_PageTest extends TestCase {
|
||||
|
||||
public void test_page() throws Exception {
|
||||
String sql = "SELECT XX.*, ROWNUM AS RN" + //
|
||||
"\nFROM (SELECT *" + //
|
||||
"\n\tFROM t" + //
|
||||
"\n\tORDER BY id" + //
|
||||
"\n\t) XX" + //
|
||||
"\nWHERE ROWNUM <= 10";
|
||||
|
||||
String mysqlSql = SQLUtils.translateOracleToMySql(sql);
|
||||
Assert.assertEquals("SELECT *"//
|
||||
+ "\nFROM t"//
|
||||
+ "\nORDER BY id"//
|
||||
+ "\nLIMIT 10", mysqlSql);
|
||||
System.out.println(mysqlSql);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.alibaba.druid.bvt.sql.oracle.tomysql;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
|
||||
public class OracleToMySql_PageTest1 extends TestCase {
|
||||
|
||||
public void test_page() throws Exception {
|
||||
String sql = "SELECT *" + //
|
||||
"\nFROM (SELECT XX.*, ROWNUM AS RN" + //
|
||||
"\n\tFROM (SELECT *" + //
|
||||
"\n\t\tFROM t" + //
|
||||
"\n\t\tORDER BY id" + //
|
||||
"\n\t\t) XX" + //
|
||||
"\n\tWHERE ROWNUM <= 20" + //
|
||||
"\n\t) XXX" + //
|
||||
"\nWHERE RN > 10";
|
||||
|
||||
String mysqlSql = SQLUtils.translateOracleToMySql(sql);
|
||||
Assert.assertEquals("SELECT *"//
|
||||
+ "\nFROM t"//
|
||||
+ "\nORDER BY id"//
|
||||
+ "\nLIMIT 10, 10", mysqlSql);
|
||||
System.out.println(mysqlSql);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.alibaba.druid.bvt.sql.oracle.tomysql;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
|
||||
public class OracleToMySql_PageTest2 extends TestCase {
|
||||
|
||||
public void test_page() throws Exception {
|
||||
String sql = "SELECT XX.*, ROWNUM AS RN" + //
|
||||
"\nFROM (SELECT *" + //
|
||||
"\n\tFROM t" + //
|
||||
"\n\tORDER BY id" + //
|
||||
"\n\t) XX" + //
|
||||
"\nWHERE ROWNUM < 10";
|
||||
|
||||
String mysqlSql = SQLUtils.translateOracleToMySql(sql);
|
||||
Assert.assertEquals("SELECT *"//
|
||||
+ "\nFROM t"//
|
||||
+ "\nORDER BY id"//
|
||||
+ "\nLIMIT 9", mysqlSql);
|
||||
System.out.println(mysqlSql);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user