From be9a35bd8165565f1a585faf88e0ac812cb0de05 Mon Sep 17 00:00:00 2001 From: melin Date: Mon, 4 Feb 2013 11:22:24 +0800 Subject: [PATCH] =?UTF-8?q?oracle=20sql=20=E8=AF=AD=E5=8F=A5=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E5=8C=85=E5=90=AB=E4=B8=8B=E5=88=92=E7=BA=BF=E5=BC=80?= =?UTF-8?q?=E5=A4=B4=E7=9A=84=E5=8D=95=E8=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/alibaba/druid/sql/PagerUtils.java | 10 +++---- .../sql/PagerUtilsTest_Limit_oracle_0.java | 28 +++++++++---------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/alibaba/druid/sql/PagerUtils.java b/src/main/java/com/alibaba/druid/sql/PagerUtils.java index 764543b3d4..a1dfa98f6d 100644 --- a/src/main/java/com/alibaba/druid/sql/PagerUtils.java +++ b/src/main/java/com/alibaba/druid/sql/PagerUtils.java @@ -123,10 +123,10 @@ public class PagerUtils { } OracleSelectQueryBlock countQueryBlock = new OracleSelectQueryBlock(); - countQueryBlock.getSelectList().add(new SQLSelectItem(new SQLPropertyExpr(new SQLIdentifierExpr("_X"), "*"))); - countQueryBlock.getSelectList().add(new SQLSelectItem(new SQLIdentifierExpr("ROWNUM"), "_RN")); + countQueryBlock.getSelectList().add(new SQLSelectItem(new SQLPropertyExpr(new SQLIdentifierExpr("XX"), "*"))); + countQueryBlock.getSelectList().add(new SQLSelectItem(new SQLIdentifierExpr("ROWNUM"), "RN")); - countQueryBlock.setFrom(new SQLSubqueryTableSource(select, "_X")); + countQueryBlock.setFrom(new SQLSubqueryTableSource(select, "XX")); countQueryBlock.setWhere(new SQLBinaryOpExpr(new SQLIdentifierExpr("ROWNUM"), // SQLBinaryOperator.LessThanOrEqual, // new SQLNumberExpr(count + offset))); @@ -136,8 +136,8 @@ public class PagerUtils { OracleSelectQueryBlock offsetQueryBlock = new OracleSelectQueryBlock(); offsetQueryBlock.getSelectList().add(new SQLSelectItem(new SQLAllColumnExpr())); - offsetQueryBlock.setFrom(new SQLSubqueryTableSource(new SQLSelect(countQueryBlock), "_XX")); - offsetQueryBlock.setWhere(new SQLBinaryOpExpr(new SQLIdentifierExpr("_RN"), // + offsetQueryBlock.setFrom(new SQLSubqueryTableSource(new SQLSelect(countQueryBlock), "XXX")); + offsetQueryBlock.setWhere(new SQLBinaryOpExpr(new SQLIdentifierExpr("RN"), // SQLBinaryOperator.GreaterThan, // new SQLNumberExpr(offset))); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Limit_oracle_0.java b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Limit_oracle_0.java index 6481dca199..5f6798739a 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Limit_oracle_0.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/PagerUtilsTest_Limit_oracle_0.java @@ -12,11 +12,11 @@ public class PagerUtilsTest_Limit_oracle_0 extends TestCase { public void test_oracle_oderby_0() throws Exception { String sql = "select * from t order by id"; String result = PagerUtils.limit(sql, JdbcConstants.ORACLE, 0, 10); - Assert.assertEquals("SELECT _X.*, ROWNUM AS _RN" + // + Assert.assertEquals("SELECT XX.*, ROWNUM AS RN" + // "\nFROM (SELECT *" + // "\n\tFROM t" + // "\n\tORDER BY id" + // - "\n\t) _X" + // + "\n\t) XX" + // "\nWHERE ROWNUM <= 10", result); } @@ -32,39 +32,39 @@ public class PagerUtilsTest_Limit_oracle_0 extends TestCase { String sql = "select * from t"; String result = PagerUtils.limit(sql, JdbcConstants.ORACLE, 10, 10); Assert.assertEquals("SELECT *" + // - "\nFROM (SELECT _X.*, ROWNUM AS _RN" + // + "\nFROM (SELECT XX.*, ROWNUM AS RN" + // "\n\tFROM (SELECT *" + // "\n\t\tFROM t" + // - "\n\t\t) _X" + // + "\n\t\t) XX" + // "\n\tWHERE ROWNUM <= 20" + // - "\n\t) _XX" + // - "\nWHERE _RN > 10", result); + "\n\t) XXX" + // + "\nWHERE RN > 10", result); } public void test_oracle_2() throws Exception { String sql = "select * from t"; String result = PagerUtils.limit(sql, JdbcConstants.ORACLE, 20, 10); Assert.assertEquals("SELECT *" + // - "\nFROM (SELECT _X.*, ROWNUM AS _RN" + // + "\nFROM (SELECT XX.*, ROWNUM AS RN" + // "\n\tFROM (SELECT *" + // "\n\t\tFROM t" + // - "\n\t\t) _X" + // + "\n\t\t) XX" + // "\n\tWHERE ROWNUM <= 30" + // - "\n\t) _XX" + // - "\nWHERE _RN > 20", result); + "\n\t) XXX" + // + "\nWHERE RN > 20", result); } public void test_oracle_3() throws Exception { String sql = "select id, name, salary from t order by id, name"; String result = PagerUtils.limit(sql, JdbcConstants.ORACLE, 20, 10); Assert.assertEquals("SELECT *" + // - "\nFROM (SELECT _X.*, ROWNUM AS _RN" + // + "\nFROM (SELECT XX.*, ROWNUM AS RN" + // "\n\tFROM (SELECT id, name, salary" + // "\n\t\tFROM t" + // "\n\t\tORDER BY id, name" + // - "\n\t\t) _X" + // + "\n\t\t) XX" + // "\n\tWHERE ROWNUM <= 30" + // - "\n\t) _XX" + // - "\nWHERE _RN > 20", result); + "\n\t) XXX" + // + "\nWHERE RN > 20", result); } }