pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Adrian Klaver <aklaver@comcast.net>
To: pgsql-sql@postgresql.org
Cc: Mulham freshcode <mulhamcode@yahoo.com>
Cc: A. Kretschmer <andreas.kretschmer@schollglas.com>
Subject: Re: select into
Date: Thu, 23 Nov 2006 10:35:54 -0800
Message-ID: <200611231035.54710.aklaver@comcast.net> (raw)
In-Reply-To: <20061123171909.89660.qmail@web90510.mail.mud.yahoo.com>
References: <20061123171909.89660.qmail@web90510.mail.mud.yahoo.com>

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" <andreas.kretschmer@schollglas.com> 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@comcast.net



view thread (43+ messages)  latest in thread

Message-ID: <200611231035.54710.aklaver@comcast.net>
Permalink:  ../200611231035.54710.aklaver@comcast.net/
Also on:    postgresql.org/message-id/200611231035.54710.aklaver@comcast.net

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: aklaver@comcast.net, mulhamcode@yahoo.com, andreas.kretschmer@schollglas.com
  Subject: Re: select into
  In-Reply-To: <200611231035.54710.aklaver@comcast.net>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox