informatica:base_de_datos:sql_server:sql_server_bulk
SQL BULK
Formato par Bulk:
ubigeo inei
CREATE TABLE #UbigeoIneiMigra( cod_dep_inei VARCHAR(1000), desc_dep_inei VARCHAR(1000), cod_prov_inei VARCHAR(1000), desc_prov_inei VARCHAR(1000), cod_ubigeo_inei VARCHAR(1000), desc_ubigeo_inei VARCHAR(1000), cod_dep_reniec VARCHAR(1000), desc_dep_reniec VARCHAR(1000), cod_prov_reniec VARCHAR(1000), desc_prov_reniec VARCHAR(1000), cod_ubigeo_reniec VARCHAR(1000), desc_ubigeo_reniec VARCHAR(1000), cod_dep_sunat VARCHAR(1000), desc_dep_sunat VARCHAR(1000), cod_prov_sunat VARCHAR(1000), desc_prov_sunat VARCHAR(1000), cod_ubigeo_sunat VARCHAR(1000), desc_ubigeo_sunat VARCHAR(1000) ) BULK INSERT #UbigeoIneiMigra FROM 'C:\equivalencia-ubigeos-oti-concytec.csv' WITH ( FIELDTERMINATOR =',', CODEPAGE = 'ACP', rowterminator = '0x0a',FIRSTROW = 2 ) -- Limpio comillas SELECT * FROM #UbigeoIneiMigra --UPDATE #UbigeoIneiMigra SET cod_dep_inei = REPLACE(cod_dep_inei,'"',''), desc_dep_inei = REPLACE(desc_dep_inei,'"',''), cod_prov_inei = REPLACE(cod_prov_inei,'"',''), desc_prov_inei = REPLACE(desc_prov_inei,'"',''), cod_ubigeo_inei = REPLACE(cod_ubigeo_inei,'"',''), desc_ubigeo_inei = REPLACE(desc_ubigeo_inei,'"',''), cod_dep_reniec = REPLACE(cod_dep_reniec,'"',''), desc_dep_reniec = REPLACE(desc_dep_reniec,'"',''), cod_prov_reniec = REPLACE(cod_prov_reniec,'"',''), desc_prov_reniec = REPLACE(desc_prov_reniec,'"',''), cod_ubigeo_reniec = REPLACE(cod_ubigeo_reniec,'"',''), desc_ubigeo_reniec = REPLACE(desc_ubigeo_reniec,'"',''), cod_dep_sunat = REPLACE(cod_dep_sunat,'"',''), desc_dep_sunat = REPLACE(desc_dep_sunat,'"',''), cod_prov_sunat = REPLACE(cod_prov_sunat,'"',''), desc_prov_sunat = REPLACE(desc_prov_sunat,'"',''), cod_ubigeo_sunat = REPLACE(cod_ubigeo_sunat,'"',''), desc_ubigeo_sunat = REPLACE(desc_ubigeo_sunat,'"','') -- Maximo de columna SELECT MAX(LEN(cod_dep_inei)), MAX(LEN(desc_dep_inei)), MAX(LEN(cod_prov_inei)), MAX(LEN(desc_prov_inei)), MAX(LEN(cod_ubigeo_inei)), MAX(LEN(desc_ubigeo_inei)), MAX(LEN(cod_dep_reniec)), MAX(LEN(desc_dep_reniec)), MAX(LEN(cod_prov_reniec)), MAX(LEN(desc_prov_reniec)), MAX(LEN(cod_ubigeo_reniec)), MAX(LEN(desc_ubigeo_reniec)), MAX(LEN(cod_dep_sunat)), MAX(LEN(desc_dep_sunat)), MAX(LEN(cod_prov_sunat)), MAX(LEN(desc_prov_sunat)), MAX(LEN(cod_ubigeo_sunat)), MAX(LEN(desc_ubigeo_sunat)) FROM #UbigeoIneiMigra -- segun su maximo de length modifico la pagina. ALTER TABLE #UbigeoIneiMigra ALTER COLUMN cod_dep_inei VARCHAR(2) ALTER TABLE #UbigeoIneiMigra ALTER COLUMN desc_dep_inei VARCHAR(13) ALTER TABLE #UbigeoIneiMigra ALTER COLUMN cod_prov_inei VARCHAR(4) ALTER TABLE #UbigeoIneiMigra ALTER COLUMN desc_prov_inei VARCHAR(25) ALTER TABLE #UbigeoIneiMigra ALTER COLUMN cod_ubigeo_inei VARCHAR(6) ALTER TABLE #UbigeoIneiMigra ALTER COLUMN desc_ubigeo_inei VARCHAR(36) ALTER TABLE #UbigeoIneiMigra ALTER COLUMN cod_dep_reniec VARCHAR(2) ALTER TABLE #UbigeoIneiMigra ALTER COLUMN desc_dep_reniec VARCHAR(23) ALTER TABLE #UbigeoIneiMigra ALTER COLUMN cod_prov_reniec VARCHAR(4) ALTER TABLE #UbigeoIneiMigra ALTER COLUMN desc_prov_reniec VARCHAR(25) ALTER TABLE #UbigeoIneiMigra ALTER COLUMN cod_ubigeo_reniec VARCHAR(6) ALTER TABLE #UbigeoIneiMigra ALTER COLUMN desc_ubigeo_reniec VARCHAR(30) ALTER TABLE #UbigeoIneiMigra ALTER COLUMN cod_dep_sunat VARCHAR(2) ALTER TABLE #UbigeoIneiMigra ALTER COLUMN desc_dep_sunat VARCHAR(23) ALTER TABLE #UbigeoIneiMigra ALTER COLUMN cod_prov_sunat VARCHAR(4) ALTER TABLE #UbigeoIneiMigra ALTER COLUMN desc_prov_sunat VARCHAR(25) ALTER TABLE #UbigeoIneiMigra ALTER COLUMN cod_ubigeo_sunat VARCHAR(6) ALTER TABLE #UbigeoIneiMigra ALTER COLUMN desc_ubigeo_sunat VARCHAR(36) -- Si es que se quiere crear( ojo con las comillas al insert desde csv) CREATE TABLE #UbigeoIneiMigra( cod_dep_inei VARCHAR(2), desc_dep_inei VARCHAR(13), cod_prov_inei VARCHAR(4), desc_prov_inei VARCHAR(25), cod_ubigeo_inei VARCHAR(6), desc_ubigeo_inei VARCHAR(36), cod_dep_reniec VARCHAR(2), desc_dep_reniec VARCHAR(23), cod_prov_reniec VARCHAR(4), desc_prov_reniec VARCHAR(25), cod_ubigeo_reniec VARCHAR(6), desc_ubigeo_reniec VARCHAR(30), cod_dep_sunat VARCHAR(2), desc_dep_sunat VARCHAR(23), cod_prov_sunat VARCHAR(4), desc_prov_sunat VARCHAR(25), cod_ubigeo_sunat VARCHAR(6), desc_ubigeo_sunat VARCHAR(36) )
Si no se define correctamente el CODEPAGE aparecerán errores
LA UNIÊN - LA UNIÓN FERREÐAFE - FERREÑAFE P+UCAR DEL SARA SARA
Creando la tablas
Tomado como ejemplo de ubigeos que hice en postgresql
--#### UBIGEOS DEPARTAMENTOS CREATE TABLE ubigeos_dep( cod_dep_inei CHAR(2) PRIMARY KEY, desc_dep_inei VARCHAR(13) ); --INSERT INTO ubigeos_dep( cod_dep_inei, desc_dep_inei ) SELECT RIGHT('00'+cod_dep_inei,2) AS cod_dep_inei, desc_dep_inei FROM #UbigeoIneiMigra WHERE desc_dep_inei <> 'NA' GROUP BY cod_dep_inei, desc_dep_inei ORDER BY cod_dep_inei ASC --#### UBIGEOS PROVINCIAS CREATE TABLE ubigeos_prov( cod_prov_inei CHAR(4) PRIMARY KEY, cod_dep_inei CHAR(2), desc_prov_inei VARCHAR(25) ); --INSERT INTO ubigeos_prov(cod_prov_inei,cod_dep_inei,desc_prov_inei) SELECT RIGHT('0000'+cod_prov_inei,4) AS cod_prov_inei, RIGHT('00'+cod_dep_inei,2) AS cod_dep_inei, desc_prov_inei FROM #UbigeoIneiMigra WHERE desc_prov_inei <> 'NA' GROUP BY cod_prov_inei, cod_dep_inei, desc_prov_inei ORDER BY cod_prov_inei ASC --#### UBIGEOS DISTRITOS CREATE TABLE ubigeos_dist( cod_ubigeo_inei CHAR(6) PRIMARY KEY, cod_prov_inei CHAR(4), cod_dep_inei CHAR(2), desc_ubigeo_inei VARCHAR(36) ); INSERT INTO ubigeos_dist( cod_ubigeo_inei, cod_prov_inei, cod_dep_inei, desc_ubigeo_inei ) SELECT RIGHT('000000'+cod_ubigeo_inei,6) AS cod_ubigeo_inei, RIGHT('0000'+cod_prov_inei,4) AS cod_prov_inei, RIGHT('00'+cod_dep_inei,2) AS cod_dep_inei, desc_ubigeo_inei FROM #UbigeoIneiMigra WHERE desc_ubigeo_inei <> 'NA' ORDER BY cod_ubigeo_inei ASC --## UBIGEOS VISTA CREATE VIEW ubigeos AS SELECT dis.cod_dep_inei, dep.desc_dep_inei, dis.cod_prov_inei, pro.desc_prov_inei, dis.cod_ubigeo_inei, dis.desc_ubigeo_inei FROM ubigeos_dist AS dis LEFT JOIN ubigeos_dep AS dep ON dep.cod_dep_inei = dis.cod_dep_inei LEFT JOIN ubigeos_prov AS pro ON pro.cod_prov_inei = dis.cod_prov_inei
correción de Acentos del csv
SELECT * FROM ubigeos_prov WHERE ( desc_prov_inei LIKE '%À%' OR desc_prov_inei LIKE '%Á%' ) OR ( desc_prov_inei LIKE '%È%' OR desc_prov_inei LIKE '%É%' ) OR ( desc_prov_inei LIKE '%Ì%' OR desc_prov_inei LIKE '%Í%' ) OR ( desc_prov_inei LIKE '%Ò%' OR desc_prov_inei LIKE '%Ó%' ) OR ( desc_prov_inei LIKE '%Ù%' OR desc_prov_inei LIKE '%Ú%' ) SELECT * FROM ubigeos_prov -- UPDATE ubigeos_prov SET desc_prov_inei = 'PÁUCAR DEL SARA SARA' WHERE desc_prov_inei = 'PÀUCAR DEL SARA SARA' SELECT * FROM ubigeos_prov -- UPDATE ubigeos_prov SET desc_prov_inei = 'LA UNIÓN' WHERE desc_prov_inei = 'LA UNIÒN'
Busqueda con acentos insensible
SELECT * FROM ubigeos_prov WHERE desc_prov_inei COLLATE Latin1_general_CI_AI LIKE '%PAUCAR%' COLLATE Latin1_general_CI_AI -- EL collate puede ir en cualquiera COLLATE Latin1_general_CI_AI --ALTER TABLE ubigeos_prov ALTER COLUMN desc_prov_inei VARCHAR(25) COLLATE Modern_Spanish_CI_AI
informatica/base_de_datos/sql_server/sql_server_bulk.txt · Última modificación: 2025/04/08 00:43 por admin