में यहाँ मेरी समारोह घोषणा और शरीर का हिस्सा है। इस समारोह मुझे इस तरह त्रुटियों दे:PL/pgSQL चयन एक सरणी
psql:functions.sql:62: ERROR: syntax error at or near "team_ids"
LINE 13: AND "team_id" IN team_ids;
में यहाँ मेरी समारोह घोषणा और शरीर का हिस्सा है। इस समारोह मुझे इस तरह त्रुटियों दे:PL/pgSQL चयन एक सरणी
psql:functions.sql:62: ERROR: syntax error at or near "team_ids"
LINE 13: AND "team_id" IN team_ids;
तेज़ और सरल एक FROM
clause in your UPDATE
statement साथ:
UPDATE team_prsnl p
SET updt_dt_tm = now()
,last_access_dt_tm = now()
FROM tmp_team_list t
WHERE p.team_id = t.team_id;
जबकि एक सरणी के साथ काम कर, WHERE
खंड होता तरफ यही कारण है,
WHERE team_id = ANY (team_ids)
IN
निर्माण सेट के साथ काम करता है होना करने के लिए , सरणी के साथ नहीं।
एक SELECT
से एक सरणी बनाने के लिए:
# select array( select id from tmp_team_list) ;
?column?
----------
{1,2}
(1 row)
IN
ऑपरेटर documented दायां संकार्य के लिए एक सबक्वेरी लेने के रूप में है। उदाहरण के लिए:
UPDATE team_prsnl SET updt_dt_tm = NOW()
WHERE team_id IN (SELECT id FROM tmp_team_list);
शायद आप पूरी तरह सरणी से बचने के लिए, या सरणी या select from team_ids
की आपूर्ति कर सकते हैं।
मुझे लगता है कि आपको अपने चयन में ऑर्डर गलत मिला है। ऐसा नहीं होना चाहिए: 'tmp_team_list से टीम_आईड्स में टीम_आईडी चुनें;' –