Beispiel #1
0
        public virtual void testRemoveIntoClause()
        {
            TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvoracle);

            sqlparser.sqltext = @"SELECT * INTO newTbl FROM ( SELECT * FROM Instructor) AS tmp;";

            sqlparser.parse();
            TSelectSqlStatement select = (TSelectSqlStatement)sqlparser.sqlstatements.get(0);

            // remove into clause
            select.IntoClause = null;
            // remove * in the select list
            select.ResultColumnList.removeElementAt(0);

            // add a new select list item
            TResultColumn resultColumn = new TResultColumn();

            resultColumn.Expr = sqlparser.parseExpression("count(*)");
            TAliasClause aliasClause = new TAliasClause();

            aliasClause.AliasName    = sqlparser.parseObjectName("count");
            aliasClause.HasAs        = true;
            resultColumn.AliasClause = aliasClause;

            select.ResultColumnList.addResultColumn(resultColumn);

            // Console.WriteLine(sqlparser.sqlstatements.get(0).ToScript());
            Assert.IsTrue(testScriptGenerator.verifyScript(EDbVendor.dbvoracle
                                                           , select.ToScript()
                                                           , @"select 
                    count(*) as count
                     from 
                    ( select 
                    *
                     from 
                    Instructor) as tmp"
                                                           ));
        }
Beispiel #2
0
        public virtual void testModifySelectList()
        {
            parser.sqltext = "select t1.f1, t2.f2 as f2 from table1 t1 left join table2 t2 on t1.f1 = t2.f2 ";
            Assert.IsTrue(parser.parse() == 0);
            TSelectSqlStatement select = (TSelectSqlStatement)parser.sqlstatements.get(0);

            select.ResultColumnList.removeElementAt(1);
            select.ResultColumnList.removeElementAt(0);

            TResultColumn resultColumn1 = new TResultColumn();

            resultColumn1.Expr = parser.parseExpression("t1.f3");
            TAliasClause aliasClause1 = new TAliasClause();

            aliasClause1.AliasName    = parser.parseObjectName("f1");
            aliasClause1.HasAs        = true;
            resultColumn1.AliasClause = aliasClause1;
            select.ResultColumnList.addResultColumn(resultColumn1);

            TResultColumn resultColumn2 = new TResultColumn();

            resultColumn2.Expr = parser.parseExpression("t2.f3");
            select.ResultColumnList.addResultColumn(resultColumn2);
            // System.out.println(scriptGenerator.generateScript(select,true));

            Assert.IsTrue(testScriptGenerator.verifyScript(EDbVendor.dbvoracle
                                                           , select.ToScript()
                                                           , "SELECT t1.f3 AS f1,\n" +
                                                           "       t2.f3\n" +
                                                           "FROM   table1 t1\n" +
                                                           "       LEFT JOIN table2 t2\n" +
                                                           "       ON t1.f1 = t2.f2"
                                                           ));
        }