From: | Mulham freshcode <mulhamcode(at)yahoo(dot)com> |
---|---|
To: | aklaver(at)comcast(dot)net, pgsql-sql(at)postgresql(dot)org |
Cc: | Mulham freshcode <mulhamcode(at)yahoo(dot)com>, "A(dot) Kretschmer" <andreas(dot)kretschmer(at)schollglas(dot)com> |
Subject: | Re: select into |
Date: | 2006-11-24 04:21:34 |
Message-ID: | 20061124042134.55885.qmail@web90512.mail.mud.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Hello Adrian,
Here is my execute string,
sql_str1 = 'select * from ' || svc_tbl_name || ' where uid = ' || sub_id ;
execute sql_str1 into svc_data_rec ;
svc_data_rec is a RECORD, which is supposed to be dynamic. If I need to define the structure of the record then there will be no point in using it since I need something to change according the structure the table, which i don't know in advance...
Thank you,
Mustafa...
Adrian Klaver <aklaver(at)comcast(dot)net> wrote: On Thursday 23 November 2006 09:19 am, Mulham freshcode wrote:
> Hi,
> Thanks very much for all the suggestions. Like Andreas said i have to
> use EXECUTE to do this. That was my guess too but i was putting the INTO
> cluase into the string before executing it. This is a step forward. The
> problem now is getting the into to work with a record. Am using a RECORD
> variable after declaring it in the INTO clause. pg is complaining
>
> ERROR: record "svc_data_rec" is not assigned yet
> DETAIL: The tuple structure of a not-yet-assigned record is
> indeterminate. CONTEXT: PL/pgSQL function "foo" line 130 at execute
> statement
>
> I read in the docs the following, "The INTO clause specifies where the
> results of a SELECT command should be assigned. If a row or variable list
> is provided, it must exactly match the structure of the results produced by
> the SELECT (when a record variable is used, it will configure itself to
> match the result's structure automatically)." That i take to mean that the
> above is ok. But it ain't.
>
> Thanks again for your guys help...
>
> "A. Kretschmer" wrote: am Wed, dem
22.11.2006, um 0:28:15 -0800 mailte Mulham freshcode folgendes:
> > Hi guys,
> >
> > Am new to sql scripting so this might be a stupid question. Am getting
> > an error while trying to do the following
> >
> > SELECT INTO svc_data_rec * from svc_tbl_name where 'uid' = sub_id;
> >
> > where svc_data_rec is defined as record and svc_tbl_name is a varchar
> > that holds the name of a table and sub_id is another varchar. the error
> > message is
>
> You should rewrite your plpgsql-function. You can't handle with
> string-vars in this way, you must create a string with your complete sql
> and EXECUTE this string.
>
> Read
> http://www.postgresql.org/docs/8.1/interactive/plpgsql-statements.html#PLPG
>SQL-STATEMENTS-EXECUTING-DYN
>
>
> Andreas
My guess is that the error message is correct, the svc_data_rec has not had
any values assigned to it. In other words the EXECUTE statement is not
working the way you think it is. Could you post the EXECUTE string?
--
Adrian Klaver
aklaver(at)comcast(dot)net
---------------------------------
Want to start your own business? Learn how on Yahoo! Small Business.
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2006-11-24 04:45:19 | Re: select into |
Previous Message | Adrian Klaver | 2006-11-23 18:35:54 | Re: select into |