Re: cvs text to quoted cvs text

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Michael Moore <michaeljmoore(at)gmail(dot)com>
Cc: postgres list <pgsql-sql(at)postgresql(dot)org>
Subject: Re: cvs text to quoted cvs text
Date: 2016-09-26 19:33:22
Message-ID: CAFj8pRA5=2zt-dcZxdrm-eMM3=toCrGjwR1v-AO+fHUYPHthDQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi

2016-09-26 21:23 GMT+02:00 Michael Moore <michaeljmoore(at)gmail(dot)com>:

> I have some input parameters on a function that will by use in dynamic sql
> as part of an IN list. For example:
> 'select val from mytab where zzz in ('||csv_input_parm::text||')';
> The problem is that csv_input_parm is formatted like:
> [THIS,THAT,THE OTHER] while the IN list would need
> ['THIS','THAT','THE OTHER'] brackets not included.
> I came up with this approach to do the conversion:
> select ''''||array_to_string(string_to_array('THIS,THAT,THE
> OTHER',','),''',''')||'''' rslt
> It gets the job done, but it's ugly. Is there a way that is not ugly?
>

are you need it? You can use USING clause, when you use dynamic SQL.

postgres=# DO $$
DECLARE x text[] = '{AHOJ,NAZDAR}'; r text;
BEGIN
FOR r IN EXECUTE 'SELECT UNNEST($1)' USING x
LOOP
RAISE NOTICE '>>>%<<<', r;
END LOOP;
END;
$$;
NOTICE: >>>AHOJ<<<
NOTICE: >>>NAZDAR<<<
DO

Regards

Pavel

> thanks,
> Mike
>
>

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Michael Moore 2016-09-26 20:09:08 Re: cvs text to quoted cvs text
Previous Message Igor Neyman 2016-09-26 19:28:09 Re: cvs text to quoted cvs text