জ্যামিতির ধরণগুলি সহ আমার একটি টেবিলের সমস্ত কলামের কলামের ডেটা প্রাপ্ত হওয়া দরকার। আমি যা জানতে চেয়েছিলাম তা হল যদি কোনও ফাংশন বা এসকিউএল থাকে যা এই জাতীয় কিছু দেয়:
column_name | data_type
------------+--------------
gid | integer
descr | character varying(32)
class | character varying(10)
area | double precision
geom | geometry(Polygon,3763)
কয়েক উত্তর থেকে stackexchange এবং gis.stackexchange আমি জানি যে আমি নিম্নলিখিত ক্যোয়ারী দিয়ে কিছু তথ্য পেতে পারেন:
SELECT
g.column_name,
g.data_type,
g.character_maximum_length,
g.udt_name,
f.type,
f.srid
FROM
information_schema.columns as g JOIN
geometry_columns AS f
ON (g.table_schema = f.f_table_schema and g.table_name = f.f_table_name )
WHERE
table_schema = 'my_schema_name' and
table_name = 'my_table_name'
ফলাফল:
column_name | data_type | character_maximum_length | udt_name | type | srid
------------+-------------------+--------------------------+----------+---------+------
gid | integer | | | |
descr | character varying | 32 | | |
class | character varying | 10 | | |
area | double precision | |
geom | USER-DEFINED | | geometry | Polygon | 3763
তবে, আমার প্রয়োজনীয় ফর্ম্যাটে তথ্য পুনরুদ্ধার করার জন্য কি আরও কার্যকর উপায় আছে? বা CASE WHEN
সেই বিন্যাসে একক কলামে সমস্ত কলামের বৈশিষ্ট্যগুলি সংগ্রহ করতে আমি কি কাঠামো এবং স্ট্রিং কনটেনটেশনের "জগতে" প্রবেশ করতে হবে?
আমার আশঙ্কাটি যদি কোনও প্রত্যাশিত ডেটা টাইপ আমাকে তথ্য_সেমিমা কলামগুলি সারণী থেকে অন্যান্য বৈশিষ্ট্যের প্রয়োজনের দ্বারা বিস্মিত করে। উদাহরণস্বরূপ, উদাহরণস্বরূপ সারণীতে, আমি কোনও numeric (15,2)
ডেটা টাইপ ব্যবহার করি নি , এর পরে যখন একটি CASE WHEN দ্বারা পার্স করার জন্য অন্য বৈশিষ্ট্যগুলি (সংখ্যাসূচক_প্রজ্ঞা এবং সংখ্যাসূচক_স্কেল) ব্যবহার করা দরকার।
where attname = 'geog'
তবে= 'geom'
কাজ করে। এটি আমাকে মাল্টিপলিগন, পয়েন্ট এবং মাল্টিপয়েন্ট মানগুলির জন্য ভাল ফলাফল দেয় তবে আমি লাইন বা মাল্টলাইন ধরণের জন্য কিছুই দেখতে পাচ্ছি না। সেগুলি বহুভুজ হিসাবে বিবেচিত হয়?