protected virtual IEnumerable <MigrationStatement> Generate(ProcedureOperation operation, string action) { // we might add support for [LANGUAGE SQL | LANGUAGE JAVA ] via AnonymousArguments using (var writer = SqlWriter()) { writer.Write(action); writer.Write(" PROCEDURE "); writer.Write(Quote(operation.Name)); writer.Write(" ("); if (operation.Parameters.Any()) { writer.WriteLine(); writer.Indent++; WriteColumns(writer, operation.Parameters.Select(Generate), true); writer.Indent--; writer.WriteLine(); } writer.Write(")"); writer.WriteLine(); writer.Write("AS"); writer.WriteLine(); writer.Write(operation.BodySql); writer.WriteLine(); writer.Write("END_PROCEDURE"); yield return(Statement(writer)); } }
protected virtual IEnumerable <MigrationStatement> Generate(ProcedureOperation operation, string action) { using (var writer = SqlWriter()) { var inputParameters = operation.Parameters.Where(x => !x.IsOutParameter).ToArray(); var outputParameters = operation.Parameters.Where(x => x.IsOutParameter).ToArray(); writer.Write(action); writer.Write(" PROCEDURE "); writer.Write(Quote(CheckName(ExtractName(operation.Name)))); if (inputParameters.Any()) { writer.Write(" ("); writer.WriteLine(); writer.Indent++; WriteColumns(writer, inputParameters.Select(Generate), true); writer.Indent--; writer.WriteLine(); writer.Write(")"); } if (outputParameters.Any()) { writer.WriteLine(); writer.Write("RETURNS ("); writer.WriteLine(); writer.Indent++; WriteColumns(writer, outputParameters.Select(Generate), true); writer.Indent--; writer.WriteLine(); writer.Write(")"); } writer.WriteLine(); writer.WriteLine("AS"); writer.WriteLine("BEGIN"); writer.Write(operation.BodySql); writer.WriteLine(); writer.Write("END"); yield return(Statement(writer)); } }
private void Generate(ProcedureOperation procedureOperation) { throw new NotImplementedException(); }