> On Jun 8, 2016, at 8:04 PM, Patrick B <patrickbake...@gmail.com> wrote:
> 
> 
> 
> 2016-06-09 13:58 GMT+12:00 John R Pierce <pie...@hogranch.com 
> <mailto:pie...@hogranch.com>>:
> On 6/8/2016 6:47 PM, Patrick B wrote:
> 
> 21 is the number of IDS that I wanna perform that COPY command....
> 
> that didn't answer my question.  if you call your function like SELECT 
> myfunction(21);   as you showed, where are those 21 ID's coming from?
> 
> 
> I don't know what u need, mate:
> 
> 
> CREATE or REPLACE FUNCTION function(integer)
> RETURNS void AS $$
> 
> declare
>    crtRow record;
> begin
>       FOR crtRow in EXECUTE 'select DISTINCT(account_id) from backup_table 
> WHERE migrated = 1 AND account_id IN '|| $1
> 
>       LOOP
>     COPY
>         (SELECT * FROM backup_table WHERE migrated = 1 AND account_id = 
> crtRow.account_id)
>     TO '/var/lib/pgsql/' || crtrow.account_id || '.csv';
>     end loop;
> end
> 
> $$ language 'plpgsql';
> 
> 
> Isn't this what u wanna know?
> select DISTINCT(account_id) from backup_table WHERE migrated = 1

So you want to call your function in a loop, or drop the passed in id and just 
do all the account at once, take your pick.

Reply via email to