Esempio n. 1
0
            public static CursorParameter Form(PlSqlParser.ParameterSpecContext context)
            {
                var paramName = Name.Simple(context.parameter_name());
                var type = SqlTypeParser.Parse(context.datatype());

                return new CursorParameter(paramName, type);
            }
Esempio n. 2
0
        public static RoutineParameter Routine(PlSqlParser.ParameterContext context)
        {
            var paramName = Name.Simple(context.parameter_name());
            var paramType = SqlTypeParser.Parse(context.datatype());

            var paramDir = ParameterDirection.Input;
            if (context.IN() != null) {
                if (context.OUT() != null) {
                    paramDir = ParameterDirection.InputOutput;
                } else {
                    paramDir = ParameterDirection.Input;
                }
            } else if (context.OUT() != null) {
                paramDir = ParameterDirection.Output;
            } else if (context.INOUT() != null) {
                paramDir = ParameterDirection.InputOutput;
            }

            SqlExpression defaultValue = null;
            var defaultPart = context.defaultValuePart();
            if (defaultPart != null) {
                defaultValue = Expression.Build(defaultPart.expression());
            }

            // TODO: Support default in RoutineParameter
            return new RoutineParameter(paramName, paramType, paramDir);
        }