Exemplo n.º 1
0
        public static string GenerateOracleScriptToDebug(string queryString, IEnumerable <DataBaseParameter> parameters, char paramIdentifier = '@')
        {
            AbstractionOptions options = DefaultDialectOptions.GetDefaultOptions(DatabaseDialect.Oracle, false);

            options.QueryParameterIdentifier = paramIdentifier;

            QueryPreProccess preProccess = new QueryPreProccess(options);

            parameters = preProccess.PreProcessParameters(queryString, parameters);

            string newQuery = preProccess.PreProcessQuery(queryString);

            foreach (char c in "\n\t\r")
            {
                newQuery = newQuery.Replace(c, ' ');
            }
            newQuery = new Regex(" +").Replace(newQuery, " ");

            string output = $"  DECLARE \n    sql_query VARCHAR2({newQuery.Length + 2}) := '{newQuery}';\n";

            List <string> parametersNames = new List <string>();

            foreach (DataBaseParameter parameter in parameters)
            {
                if (parameter.Value is DateTime)
                {
                    DateTime dt = (DateTime)parameter.Value;
                    output += $"    {parameter.ParameterName} DATE := TO_DATE('{dt:yyyy-MM-dd HH:mm:ss}', 'YYYY-MM-DD HH24:MI:SS');\n";
                }
                else
                {
                    output += $"    {parameter.ParameterName} VARCHAR2({parameter.Value.ToString().Length}) := '{parameter.Value}';\n";
                }
                parametersNames.Add(parameter.ParameterName);
            }

            output += $"BEGIN\n     EXECUTE IMMEDIATE sql_query USING {string.Join(",", parametersNames.ToArray())};\n END;\n  /";
            return(output);
        }
Exemplo n.º 2
0
 public DbQueryBase(IDbConnection connection, DatabaseDialect dialect)
     : this(new ConnectionBuilder(connection), DefaultDialectOptions.GetDefaultOptions(dialect, false))
 {
 }
Exemplo n.º 3
0
 public DbQueryBase(ConnectionBuilder connectionBuilder, DatabaseDialect dialect)
     : this(connectionBuilder, DefaultDialectOptions.GetDefaultOptions(dialect, true))
 {
 }
Exemplo n.º 4
0
 public DbQueryBase(IDbConnection connection, string engine = null)
     : this(new ConnectionBuilder(connection), DefaultDialectOptions.GetDefaultOptions(engine, false))
 {
 }
Exemplo n.º 5
0
 public DbQueryBase(ConnectionBuilder connectionBuilder, string engine = null)
     : this(connectionBuilder, DefaultDialectOptions.GetDefaultOptions(engine, true))
 {
 }