コード例 #1
0
        public static SqlStatement Alter(PlSqlParser.AlterUserStatementContext context)
        {
            var userName = context.userName().GetText();

            var actions = new List <IAlterUserAction>();

            foreach (var actionContext in context.alterUserAction())
            {
                if (actionContext.alterUserIdAction() != null)
                {
                    actions.Add(SetPassword(actionContext.alterUserIdAction()));
                }
                else if (actionContext.setAccountAction() != null)
                {
                    actions.Add(SetAccount(actionContext.setAccountAction()));
                }
                else if (actionContext.setRoleAction() != null)
                {
                    actions.Add(SetRole(actionContext.setRoleAction()));
                }
            }

            if (actions.Count == 1)
            {
                return(new AlterUserStatement(userName, actions[0]));
            }

            var seq = new SequenceOfStatements();

            foreach (var action in actions)
            {
                seq.Statements.Add(new AlterUserStatement(userName, action));
            }

            return(seq);
        }
コード例 #2
0
 public override SqlStatement VisitAlterUserStatement(PlSqlParser.AlterUserStatementContext context)
 {
     return(UserStatements.Alter(context));
 }