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
tecnica:gps_cartografia_gis:gdal_oracle [2009/05/18 16:43] niccolotecnica:gps_cartografia_gis:gdal_oracle [2010/10/25 14:41] (current) niccolo
Line 9: Line 9:
   - **Trasformazione** dei pacchetti **rpm** forniti da Oracle in pacchetti **deb**.   - **Trasformazione** dei pacchetti **rpm** forniti da Oracle in pacchetti **deb**.
   - Installazione di Oracle Instantclient e relativo SDK.   - Installazione di Oracle Instantclient e relativo SDK.
-  - Compilazione dei sorgenti Debian **gdal** con supporto **oci**.+  - Compilazione di **gdal** con supporto **oci** dai sorgenti Debian.
   - Intallazione dei pacchetti compilati.   - Intallazione dei pacchetti compilati.
  
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:tablename"
 +</code>
 +
 +Il **''service_name''** viene detto anche //istanza// nella terminologia Oracle. Il server Oracle risponde sulla porta **1521 TCP**.
 +
 +Un esempio di **interrogazione SQL** con ''ogrinfo'':
 +
 +<code>
 +ogrinfo "OCI:username/passwd@host:port/service_name:tablename" \
 +    -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, la virgola decimale e il 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.1242657813.txt.gz · Last modified: 2009/05/18 16:43 by niccolo