Script para generar archivo sql a partir de datos de padrones urbanos dnc catastro e importarlo en PostgreSql

1. Bajar el archivo csv de padrones urbanos de:

https://catalogodatos.gub.uy/dataset/padrones-urbanos-y-rurales

2. Crear un .NET:


using System;
using System.IO;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            //PadronesUrbanos();


        }

        static void PadronesUrbanos()
        {
            var arch = @"C:\_MAPAS\_PADRONES DNC\datos-abiertos-dnc-2019-06\Padrones Urbanos.CSV";

            var fila = 0;
            var numero_archivo = 0;
            var archOut = @"C:\temp\out\Padrones Urbanos_" + numero_archivo + ".sql";


            var f = new StreamReader(arch);
            var fOut = new StreamWriter(archOut);

            fOut.WriteLine("DROP TABLE padrones_urbanos;");

            fOut.WriteLine("CREATE TABLE padrones_urbanos (" +
                "codigo_regimen VARCHAR(2), " +
                "codigo_departamento VARCHAR(1), " +
                "codigo_localidad VARCHAR(2), " +
                "numero_padron integer, " +
                "block_manzana VARCHAR(20), " +
                "entrepiso_subsuelo VARCHAR(2), " +
                "unidad integer, " +
                "area_predio integer, " +
                "area_edificada integer, " +
                "valor_real_terreno integer, " +
                "valor_real_mejoras integer, " +
                "valor_real_total integer, " +
                "valor_real_para_impuestos integer, " +
                "fecha_ultima_djcu VARCHAR(10), " +
                "vigencia_ultima_djcu VARCHAR(10)" +
                ");");

            fOut.WriteLine();

            while (!f.EndOfStream)
            {
                var linea = f.ReadLine();
                fila++;

                var v = linea.Split(',');

                var v1 = v[0].Replace("\"", "'");
                var v2 = v[1].Replace("\"", "'");
                var v3 = v[2].Replace("\"", "'");
                var v4 = v[3].Replace("\"", "'");
                var v5 = "'" + v[4].Replace("\"", "").Replace("'", "") + "'"; ;
                var v6 = v[5].Replace("\"", "'");
                var v7 = v[6].Replace("\"", "'");
                var v8 = v[7].Replace("\"", "'");
                var v9 = v[8].Replace("\"", "'");
                var v10 = v[9].Replace("\"", "'");
                var v11 = v[10].Replace("\"", "'");
                var v12 = v[11].Replace("\"", "'");
                var v13 = v[12].Replace("\"", "'");
                var v14 = "\'" + v[13] + "\'";
                var v15 = "\'" + v[14] + "\'";

                fOut.WriteLine("INSERT INTO padrones_urbanos (codigo_regimen, codigo_departamento, codigo_localidad, numero_padron, block_manzana, entrepiso_subsuelo, unidad, area_predio, area_edificada, valor_real_terreno, valor_real_mejoras, valor_real_total, valor_real_para_impuestos, fecha_ultima_djcu, vigencia_ultima_djcu) " +
                    "VALUES (" + v1 + ", " + v2 + ", " + v3 + ", " + v4 + ", " + v5 + ", " + v6 + ", " +
                                 v7 + ", " + v8 + ", " + v9 + ", " + v10 + ", " + v11 + ", " + v12 + ", " + v13 + ", " + v14 + ", " + v15 + ");");

                if (fila > 300000)
                {
                    fila = 0;

                    numero_archivo++;
                    fOut.Close();
                    archOut = @"C:\temp\out\Padrones Urbanos_" + numero_archivo + ".sql";

                    fOut = new StreamWriter(archOut);
                }
            }

            fOut.Close();

            Console.WriteLine("fin");
            Console.ReadLine();
        }
    }
}


3. Para importarlo en postgreSql:

C:\Program Files\PostgreSQL\11\bin>psql -h localhost -d catastro -U admin -v ON_ERROR_STOP=1 -f "c:\temp\Padrones Urbanos_0.sql"

(hacerlo para el 1, 2, 3, etc)





No hay comentarios:

Publicar un comentario