Re: dynamic function question
От | Stephan Szabo |
---|---|
Тема | Re: dynamic function question |
Дата | |
Msg-id | 20040604150245.Y32434@megazone.bigpanda.com обсуждение исходный текст |
Ответ на | dynamic function question ("Chris Ochs" <chris@paymentonline.com>) |
Список | pgsql-general |
On Fri, 4 Jun 2004, Chris Ochs wrote: > What I would like to do is pass in the column name that is being queried > against (cust_email) so it can be dynamic. I tried the following but it > always returns an empty set. > > CREATE OR REPLACE FUNCTION lookup_customer(varchar,varchar) RETURNS SETOF > customer_rec AS > ' > DECLARE > r RECORD; > in_string ALIAS FOR $1; > in_column ALIAS FOR $2; > BEGIN > FOR r IN SELECT > s_oid,mer_id,site_id,order_id,pymt_type,pymt_subtype,comp_name,f_name1,l_nam > e1,f_name2,l_name2,address,city,state > ,zipcode,phone,cust_email,country from customers where in_column ILIKE > in_string LOOP I think you're going to need to look at using FOR IN EXECUTE to do this generating a query string, something like: FOR r IN EXECUTE ''SELECT s_oid,mer_id,site_id,order_id,pymt_type, pymt_subtype,comp_name,f_name1,l_name1,f_name2,l_name2,address, city,state,zipcode,phone,cust_email,country from customers where '' || in_column || '' ILIKE '' || in_string LOOP
В списке pgsql-general по дате отправления: