<?php
/* Connexionn à la base de données */
if($conn = pg_connect("host=192.168.1.40 port=5432 dbname=sicen user=dba password=dbroot")) echo "connecté à la base !\n";
/* ouverture du ficjhier contenant les données */
if($fh = fopen('D:/CEN-LR/NBAT.300.txt','r')) echo "fichier ouvert !\n"; else die($php_errormsg);
/* Vidage de la table dgi.nbat */
$res = pg_query($conn, "delete from dgi.nbat") or die(pg_last_error());
/* initialisation de qq variables */
$i=1;
$nb_ligne=0;
$nb_erreurs=0;
/* parcours du fichier */
while($s = fgets($fh,1024)){
$sql = "INSERT INTO dgi.nbat VALUES ('".$s."');"; /* création d ela requete d'insertion */
if($i>1 && (substr($s,19,2)=='10')){
if($res = pg_query($conn, $sql)){
$nb_lignes++;
}
else{$nb_erreurs++;
$sql_erreur.=$sql;
}
}
$i++;
}
echo $nb_lignes.' insérées !';
echo $nb_erreurs.' erreurs : ';
echo $sql_erreur;
$sql_vacuum_nbat="VACUUM dgi.nbat;";
pg_query($conn, $sql_vacuum_nbat) or die(pg_last_error());
echo "vacuum dgi.nbat ok !";
$sql_vide_parcelle_non_bati="DELETE FROM dgi.parcelle_non_bati";
pg_query($conn, $sql_vide_parcelle_non_bati) or die(pg_last_error());
$sql_ventil="INSERT INTO dgi.parcelle_non_bati(
ccodep, ccodir, ccocom, ccopre, ccosec, dnupla, filler, cenr,
dcntpa, dsrpar, dnupro, jdatat, dreflf, gpdl, cprsecr, ccosecr,
dnuplar, dnupdl, gurbpa, dparpi, ccoarp, gparnf, gparbat, parrev,
gpardp, fviti, dnvoiri, dindic, ccovoi, ccoriv, ccocif, gpafpd)
SELECT substring (ligne FROM 1 for 2), substring (ligne FROM 3 for 1), substring (ligne FROM 4 for 3), substring (ligne FROM 7 for 3), substring (ligne FROM 10 for 2), substring (ligne FROM 12 for 4), substring (ligne FROM 16 for 4), substring (ligne FROM 20 for 2), substring (ligne FROM 22 for 9), substring (ligne FROM 31 for 1), substring (ligne FROM 32 for 6), substring (ligne FROM 38 for 8), substring (ligne FROM 46 for 5), substring (ligne FROM 51 for 1), substring (ligne FROM 52 for 3), substring (ligne FROM 55 for 2), substring (ligne FROM 57 for 4), substring (ligne FROM 61 for 3), substring (ligne FROM 64 for 1), substring (ligne FROM 65 for 4), substring (ligne FROM 69 for 1), substring (ligne FROM 70 for 1), substring (ligne FROM 71 for 1), substring (ligne FROM 72 for 12), substring (ligne FROM 84 for 01), substring (ligne FROM 85 for 01), substring (ligne FROM 86 for 4), substring (ligne FROM 90 for 1), substring (ligne FROM 91 for 5), substring (ligne FROM 96 for 4), substring (ligne FROM 100 for 4), substring (ligne FROM 104 for 1) FROM dgi.nbat";
pg_query($conn, $sql_ventil) or die(pg_last_error());
$sql_vacuum_parcelle_non_bati="VACUUM dgi.parcelle_non_bati";
pg_query($conn, $sql_vacuum_parcelle_non_bati) or die(pg_last_error());
echo "vacuum dgi.parcelle_non_bati ok !";
?>
CREATE OR REPLACE VIEW dgi.analyse_fonciere_fr9101402 AS
SELECT ((compte_communal.ccodep::text || compte_communal.ccodir::text) || compte_communal.ccocom::text) || compte_communal.dnupro::text AS compte_propriete, count(parcelle.id_parcelle) AS nb_parcelle, sum(area2d(parcelle.geometrie)) / 10000::double precision AS surface_en_propriete_ha, sum(area2d(parcelle.geometrie)) / 10000::double precision / count(parcelle.id_parcelle)::double precision AS surf_moy_ha, proprietaires.ddenom, proprietaires.dqualp, proprietaires.dprnlp, proprietaires.dnomlp, proprietaires.dlign3, proprietaires.dlign4, proprietaires.dlign5, proprietaires.dlign6, proprietaires.ccopos, proprietaires.epxnee, proprietaires.dnomcp, proprietaires.dprncp
FROM ign_bd_parcellaire.parcelle
JOIN dgi.parcelle_majic2 ON parcelle_majic2.ccodep::text = parcelle.code_dep::text AND parcelle_majic2.ccocom::text = parcelle.code_com::text AND REPLACE(parcelle_majic2.ccopre::text, ' '::text, '0'::text) = parcelle.com_abs::text AND REPLACE(parcelle_majic2.ccosec::text, ' '::text, '0'::text) = parcelle.section::text AND parcelle_majic2.dnupla::text = parcelle.numero::text
JOIN dgi.compte_communal ON compte_communal.ccodep::text = parcelle_majic2.ccodep::text AND compte_communal.ccodir::text = parcelle_majic2.ccodir::text AND compte_communal.ccocom::text = parcelle_majic2.ccocom::text AND compte_communal.dnupro::text = parcelle_majic2.dnupro::text
JOIN perimetre ON st_intersects(perimetre.geometrie, parcelle.geometrie)
JOIN dgi.proprietaires ON compte_communal.ccodep::text = proprietaires.ccodep::text AND compte_communal.ccodir::text = proprietaires.ccodir::text AND compte_communal.ccocom::text = proprietaires.ccocom::text AND compte_communal.dnupro::text = proprietaires.dnupro::text
WHERE perimetre.id_perimetre::text = 'FR9101402'::text AND proprietaires.gdesip::text = '1'::text
GROUP BY compte_communal.ccodep, compte_communal.ccodir, compte_communal.ccocom, compte_communal.dnupro, proprietaires.ddenom, proprietaires.dqualp, proprietaires.dprnlp, proprietaires.dnomlp, proprietaires.dlign3, proprietaires.dlign4, proprietaires.dlign5, proprietaires.dlign6, proprietaires.ccopos, proprietaires.jdatnss, proprietaires.epxnee, proprietaires.dnomcp, proprietaires.dprncp
ORDER BY sum(area2d(parcelle.geometrie)) / 10000::double precision DESC;
CREATE OR REPLACE VIEW dgi.foncier_fr9101402_avec_proprio AS
SELECT ((compte_communal.ccodep::text || compte_communal.ccodir::text) || compte_communal.ccocom::text) || compte_communal.dnupro::text AS compte_propriete, parcelle.id_parcelle, area2d(parcelle.geometrie) / 10000::double precision AS surf_ha, proprietaires.ddenom, proprietaires.dqualp, proprietaires.dprnlp, proprietaires.dnomlp, proprietaires.dlign3, proprietaires.dlign4, proprietaires.dlign5, proprietaires.dlign6, proprietaires.ccopos, proprietaires.epxnee, proprietaires.dnomcp, proprietaires.dprncp, parcelle.geometrie
FROM ign_bd_parcellaire.parcelle
JOIN dgi.parcelle_majic2 ON parcelle_majic2.ccodep::text = parcelle.code_dep::text AND parcelle_majic2.ccocom::text = parcelle.code_com::text AND REPLACE(parcelle_majic2.ccopre::text, ' '::text, '0'::text) = parcelle.com_abs::text AND REPLACE(parcelle_majic2.ccosec::text, ' '::text, '0'::text) = parcelle.section::text AND parcelle_majic2.dnupla::text = parcelle.numero::text
JOIN dgi.compte_communal ON compte_communal.ccodep::text = parcelle_majic2.ccodep::text AND compte_communal.ccodir::text = parcelle_majic2.ccodir::text AND compte_communal.ccocom::text = parcelle_majic2.ccocom::text AND compte_communal.dnupro::text = parcelle_majic2.dnupro::text
JOIN perimetre ON st_intersects(perimetre.geometrie, parcelle.geometrie)
JOIN dgi.proprietaires ON compte_communal.ccodep::text = proprietaires.ccodep::text AND compte_communal.ccodir::text = proprietaires.ccodir::text AND compte_communal.ccocom::text = proprietaires.ccocom::text AND compte_communal.dnupro::text = proprietaires.dnupro::text
WHERE perimetre.id_perimetre::text = 'FR9101402'::text AND proprietaires.gdesip::text = '1'::text;