User Tools

Site Tools


tecnica:gps_cartografia_gis:gdal_oracle

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
tecnica:gps_cartografia_gis:gdal_oracle [2009/05/18 16:44] niccolotecnica:gps_cartografia_gis:gdal_oracle [2010/06/01 10:57] niccolo
Line 77: Line 77:
  
 <code> <code>
-dpkg-buildpackage -rfakeroor+dpkg-buildpackage -rfakeroot
 </code> </code>
  
Line 95: Line 95:
 ===== Installazione e verifica ===== ===== Installazione e verifica =====
  
-Si installano almeno i pacchetti **''gdal-bin''** e **''libgdal1-1.5.0''**. Conviene metterli on-hold per evitare che vengano aggiornati:+Si installano almeno i pacchetti **''gdal-bin''** e **''libgdal1-1.5.0''**. Conviene metterli //on-hold// per evitare che vengano aggiornati:
  
 <code> <code>
Line 107: Line 107:
 ldd /usr/lib/libgdal1.5.0.so | grep oracle ldd /usr/lib/libgdal1.5.0.so | grep oracle
 ogrinfo --formats ogrinfo --formats
 +</code>
 +
 +Una layer OGR/Oracle su MapServer si ottiene con un mapfile del tipo:
 +
 +<file>
 +  LAYER
 +    NAME "aree_strada"
 +    STATUS DEFAULT
 +    TYPE POLYGON
 +    CONNECTIONTYPE OGR
 +    CONNECTION "OCI:username/passwd@192.168.1.122"
 +    DATA "tablename"
 +    CLASS
 +      COLOR 212 164 96
 +    END
 +  END
 +</file>
 +
 +La stringa di connessione è composta come segue:
 +
 +<code>
 +OCI:username/passwd@host:port/service_name"
 +</code>
 +
 +Il server Oracle risponde sulla porta **1521 TCP**.
 +
 +Un esempio di **interrogazione SQL** con ''ogrinfo'':
 +
 +<code>
 +ogrinfo "OCI:username/passwd@host:port/service_name" \
 +    -sql 'SELECT TOPONIMO_STRADA FROM REPLICA_TOPONOMASTICA.TOP_CIVICI'
 +</code>
 +
 +===== Charset encoding =====
 +
 +Per determinare il charset utilizzato dalla libreria OCI si imposta la variabile d'ambiente **''NLS_LANG''**:
 +
 +<code>
 +export NLS_LANG=italian_italy.UTF8
 +</code>
 +
 +Tale configurazione è fondamentale ad esempio quando si importano dati da Oracle a PostgreSQL con **''ogr2ogr''** e il charset originale non coincide con quello desiderato.
 +
 +Per vedere il charset utilizzato da Orcale:
 +
 +<code sql>
 +SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET';
 +</code>
 +<code>
 +PARAMETER            VALUE
 +-------------------- -----------------
 +NLS_CHARACTERSET     WE8ISO8859P1
 +</code>
 +
 +È probabile che sia necessario impostare anche la variabile **''NLS_NUMERIC_CHARACTERS''** che definisce il carattere separatore dei decimali e il carattere di raggruppamento delle migliaia (il punto decimale e la virgola per gli anglosassoni, virgola decimale e punto per l'Italia):
 +
 +<code>
 +export NLS_NUMERIC_CHARACTERS".,"
 +</code>
 +
 +Per sapere quale convenzione utilizza Oracle è sufficiente fare il dump della tabella con ''ogrinfo'' e visualizzare il contenuto:
 +
 +<code>
 +ogrinfo 'OCI:username/password@hostname:port/instance:tablename' geom_feature > tablename.dump
 </code> </code>
tecnica/gps_cartografia_gis/gdal_oracle.txt · Last modified: 2010/10/25 14:41 by niccolo