चूंकि PostgreSQL 9.1 सुविधाजनक FOREACH
. है :
DO
$do$
DECLARE
m varchar[];
arr varchar[] := array[['key1','val1'],['key2','val2']];
BEGIN
FOREACH m SLICE 1 IN ARRAY arr
LOOP
RAISE NOTICE 'another_func(%,%)',m[1], m[2];
END LOOP;
END
$do$
पुराने संस्करणों . के लिए समाधान :
DO
$do$
DECLARE
arr varchar[] := '{{key1,val1},{key2,val2}}';
BEGIN
FOR i IN array_lower(arr, 1) .. array_upper(arr, 1)
LOOP
RAISE NOTICE 'another_func(%,%)',arr[i][1], arr[i][2];
END LOOP;
END
$do$
साथ ही, varchar[]
. में कोई अंतर नहीं है और varchar[][]
PostgreSQL प्रकार प्रणाली के लिए। मैं यहाँ और अधिक विस्तार से समझाता हूँ।
DO
स्टेटमेंट के लिए कम से कम PostgreSQL 9.0 और LANGUAGE plpgsql
की आवश्यकता होती है डिफ़ॉल्ट है (ताकि आप घोषणा को छोड़ सकें)।