J'essaie de créer un nouveau champ dans ma table d'attributs et de mettre des valeurs d'un autre champ après la conversion de caractère en entier, mais je ne peux pas obtenir la bonne syntaxe. Je l'exécute comme shell-script dans MSYS.
cd D:/GIS_DataBase/CorineLC/shps_app_and_extr/
myfile=extr_and_app.shp
name=${myfile%.shp}
ogrinfo $myfile -sql "ALTER TABLE $name ADD COLUMN code_num int(3)"
ogrinfo $myfile -sql "UPDATE TABLE $name SET code_num = CONVERT(code_06 As int(3))"
Message d'erreur (MSYS):
Kay@KAY-PC /c/users/kay/desktop/bash
$ sh calc_field_shp.sh
Warning 6: Unsupported column type 'int'. Defaulting to VARCHAR
INFO: Open of `extr_and_app.shp'
using driver `ESRI Shapefile' successful.
ERROR 1: SQL Expression Parsing Error: syntax error
INFO: Open of `extr_and_app.shp'
using driver `ESRI Shapefile' successful.
Edit - Un autre coup avec SQLite:
cd D:/GIS_DataBase/CorineLC/shps_app_and_extr/
myfile=extr_and_app.dbf
name=${myfile%.dbf}
ogrinfo $myfile -sql "ALTER TABLE $name DROP COLUMN code_num"
ogrinfo $myfile -sql "ALTER TABLE $name ADD COLUMN code_num integer(3)"
ogrinfo $myfile -dialect SQLite -sql "UPDATE $name SET code_num = CAST(code_06 As integer(3))"
Message d'erreur:
Kay@KAY-PC /c/users/kay/desktop/bash
$ sh calc_field_shp.sh
INFO: Open of `extr_and_app.dbf'
using driver `ESRI Shapefile' successful.
INFO: Open of `extr_and_app.dbf'
using driver `ESRI Shapefile' successful.
ERROR 1: SQL Expression Parsing Error: syntax error
INFO: Open of `extr_and_app.dbf'
using driver `ESRI Shapefile' successful.
Réponses:
Comme UPDATE n'est pas pris en charge dans OGR SQL , comme vous l'avez indiqué dans un commentaire, vous devez mettre à jour la table à l'aide du dialecte SQLite SQL disponible dans GDAL> = 1.10 avec la prise en charge de SQLite et SpatiaLite :
la source
Vous pouvez essayer d'utiliser l'opérateur CAST comme dmci l' a mentionné comme ça
Le dialecte SQL pris en charge par OGR n'a pas CONVERT s'il est correctement rappelé. Vous pouvez consulter la documentation pour plus d'informations. Bonne chance!
la source
UPDATE
n'est pas pris en charge, voir ici: osgeo-org.1560.x6.nabble.com/… Cependant, cela devrait être en dialecte SQLite mais je n'ai pas eu de chance avec ça non plus ..