জিডিএল এসকিউএল সিনট্যাক্স ফিল্ডের একটি পুট মান যোগ করতে


9

আমি আমার অ্যাট্রিবিউট টেবিলটিতে একটি নতুন ক্ষেত্র তৈরি করার চেষ্টা করেছি এবং চরিত্র থেকে পূর্ণসংখ্যায় রূপান্তর করার পরে অন্য ক্ষেত্রের মানগুলি রেখেছি তবে সঠিক বাক্য গঠনটি পাই না। আমি এমএসওয়াইএস-তে এটি শেল-স্ক্রিপ্ট হিসাবে চালাচ্ছি।

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))"

ত্রুটির বার্তা (এমএসওয়াইএস):

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.

সম্পাদনা করুন - এসকিউএলাইটের সাথে আর একটি যান:

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))"

ভুল বার্তা:

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.

আপনি কি ত্রুটি পাচ্ছেন?
আর কে

@ আরকে, আমি ত্রুটিতে বার্তা যুক্ত করেছি।
কে

আপনি কনভার্টের পরিবর্তে কস্ট চেষ্টা করেছেন?
dmci

আমি সাফল্য ছাড়াই করেছি ..
কে

উত্তর:


13

ওজিআর এসকিউএল-তে আপডেটটি সমর্থিত নয় , কারণ আপনি একটি মন্তব্যে বলেছিলেন, আপনার এসকিউলাইট এসকিউএল ডায়ালেক্টটি জিডিএল> = 1.10 এ এসকিউএলাইট এবং স্প্যাটায়ালাইট সমর্থন সহ উপলব্ধ ব্যবহার করে টেবিলটি আপডেট করতে হবে :

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))"

3

আপনি CAST অপারেটরটি dmci যেমন উল্লেখ করেছে তেমন ব্যবহার করার চেষ্টা করতে পারেন

ogrinfo $myfile -sql "UPDATE TABLE $name SET code_num = CAST(code_06 as int(3))"

ওজিআর দ্বারা সমর্থিত এসকিউএল ডায়ালেক্টের সঠিকভাবে স্মরণ করা হলে কনভার্ট নেই। আপনি আরও তথ্যের জন্য দস্তাবেজগুলি পরীক্ষা করতে পারেন । শুভকামনা!


1
আপাতদৃষ্টিতে UPDATEসমর্থিত নয়, এখানে দেখুন: osgeo-org.1560.x6.nabble.com/… তবে এটি এসকিউএলাইট উপভাষায় হওয়া উচিত তবে তা নিয়ে আমার ভাগ্যও ছিল না ..
কেয়ার

আপনি জিডিএল এর কোন সংস্করণ ব্যবহার করছেন?
আর কে

আমি gdal-17
কায়

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.