private void CreateProcedure3(IQuery query)
{
var procName = ObjectName.Parse("APP.proc3");
var args = new[] {
new RoutineParameter("a", PrimitiveTypes.String()),
new RoutineParameter("b", PrimitiveTypes.String(), ParameterDirection.Output)
};
var body = new PlSqlBlockStatement();
body.Declarations.Add(new DeclareVariableStatement("c", PrimitiveTypes.String()));
body.Statements.Add(new AssignVariableStatement(SqlExpression.VariableReference("c"),
SqlExpression.VariableReference("a")));
body.Statements.Add(new AssignVariableStatement(SqlExpression.VariableReference("b"),
SqlExpression.VariableReference("c")));
var procInfo = new PlSqlProcedureInfo(procName, args, body);
query.Access().CreateObject(procInfo);
}