Re: (Pl/SQL) Obtaining field names from record 'variable'

From: Allan Kamau <kamauallan(at)yahoo(dot)com>
To: pgsql-admin(at)postgresql(dot)org
Subject: Re: (Pl/SQL) Obtaining field names from record 'variable'
Date: 2007-12-12 08:18:05
Message-ID: 116540.39716.qm@web53502.mail.re2.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Hi,Thank you for your reply Elvis, am still finding my feet on how to query the system catalogs though and interested in knowing how to do this.
Today I have another question, how do I query for a field value from the dynamically constructed field name of the returned record variable?
Let me explain, lets say I have managed to obtain the field name 'D30' (from using the system catalogs or from reading field names I had previously placed in an array) into a varchar(20) variable called current_field, how can I get the fields value from my record variable called 'query_rec', and a simple query_rec.current_field will not do?

Allan.

----- Original Message ----
From: Elvis Henríquez <henriquez(dot)elvis(at)gmail(dot)com>
To: Allan Kamau <kamauallan(at)yahoo(dot)com>
Cc: pgsql-admin(at)postgresql(dot)org
Sent: Wednesday, December 12, 2007 8:34:52 PM
Subject: Re: [ADMIN] (Pl/SQL) Obtaining field names from record 'variable'

Hi. You could do a query to the system catalogs (pg_attribute, for example) with your table name as the search criteria and the field names as the data; loop through that data to create your query in a string variable, and then EXECUTE it. While you are "looping" through the results of the system catalog query, you can apply all the text functions available, so you can split the field names, join them, etc.

I have done some similar queries. It's pretty simple.

Hope it helped.

Elvis.

On Dec 12, 2007 7:37 AM, Allan Kamau <
kamauallan(at)yahoo(dot)com
> wrote:
Hi,
I am writing a PL/SQL script to process data from a high dimensionality table where this table has most of it's field names encapsulating data. I would like to automatically loop through the fields of a RECORD variable (returned from a cursor) obtaining the field name and the field value.

For example my table is listed below (briefly)

create table my_table
(
id int not null-- default nextval(('my_table_seq'::text)::regclass)
,some_explanation varchar(20) not null
,D30 varchar(100) null

,W32 varchar(100) null
,C33 varchar(100) null
,V7 varchar(100) null
,...
)
;

The field name W32 consists of 'W' which is data I need and '32' which is data I also need along with the actual record value contained in this field.

Allan.

____________________________________________________________________________________
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now.

http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate

subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
message can get through to the mailing list cleanly

Hi,

Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now.

____________________________________________________________________________________
Looking for last minute shopping deals?
Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping

Browse pgsql-admin by date

  From Date Subject
Next Message Wouter Pels 2007-12-12 08:31:46 Re: sequence owned by backwards compatability
Previous Message Joshua D. Drake 2007-12-12 05:06:35 Re: sequence owned by backwards compatability