Saya mencoba membuat bidang baru di tabel atribut saya dan memasukkan nilai dari bidang lain setelah mengkonversi dari karakter ke integer tetapi tidak bisa mendapatkan sintaks yang tepat. Saya menjalankan ini sebagai shell-script di 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))"
Pesan Kesalahan (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.
Sunting - Lain lagi dengan 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))"
Pesan eror:
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.
Jawaban:
Karena UPDATE tidak didukung dalam OGR SQL , seperti yang Anda nyatakan dalam komentar, Anda harus memperbarui tabel menggunakan dialek SQLite SQL yang tersedia di GDAL> = 1.10 dengan dukungan SQLite dan SpatiaLite :
sumber
Anda dapat mencoba menggunakan operator CAST seperti yang disebutkan oleh dmci seperti itu
Dialek SQL yang didukung oleh OGR tidak memiliki CONVERT jika dipanggil dengan benar. Anda dapat memeriksa dokumen untuk info lebih lanjut. Semoga berhasil!
sumber
UPDATE
tidak didukung, lihat di sini: osgeo-org.1560.x6.nabble.com/... Namun, itu harus dalam dialek SQLite tetapi saya tidak beruntung dengan itu, baik ..