Пример #1
0
        public void OracleSourceConstructorTest_Subquery()
        {
            OracleSource        source    = new OracleSource("Table");
            ISqlSelectStatement statement = new OracleSelectStatement();

            statement.SelectClause.AddExpressions(new SqlAllField(source));
            statement.FromClause.Source = source;
            OracleSource target = new OracleSource(statement, "Source");

            Assert.AreEqual <string>(string.Format("\"{0}\"", target.Name.ToUpper()), target.Fullname);
            Assert.AreEqual <string>(string.Format("({0}) \"{1}\"", statement.SqlString, target.Name.ToUpper()), target.SqlString);
        }
        public void CountTest()
        {
            ISqlObject            source = new OracleSource("Table");
            ISqlObject            field  = new OracleField(source, "ID");
            OracleSelectStatement target = new OracleSelectStatement();

            target.SelectClause.AddExpressions(field);
            target.FromClause.Source     = source;
            target.WhereClause.Condition = field.GreaterThan(new SqlStringExpression("13"));
            target.OrderClause.AddExpression(field, SqlOrder.Desc);
            string sqlString = target.SqlString;

            target.Count = 13;
            ISqlObject rowNumber = SqlObject.FromVariable("ROWNUM");

            Assert.AreEqual <string>(string.Format("SELECT * FROM ({1}) {0} WHERE {2} ORDER BY {3} ASC", new OracleSource(OracleSelectStatement.MIDDLE_RESULT_NAME), sqlString, rowNumber.GreaterEqual(new SqlStringExpression(target.Count.ToString())), rowNumber.Fullname),
                                     target.SqlString);
        }