Обсуждение: (Pl/SQL) Obtaining field names from record 'variable'

Поиск
Список
Период
Сортировка

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

От
Allan Kamau
Дата:
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
namesencapsulating 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
valuecontained 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


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

От
"=?ISO-8859-1?Q?Elvis_Henr=EDquez?="
Дата:

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@yahoo.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@postgresql.org so that your
      message can get through to the mailing list cleanly

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

От
Allan Kamau
Дата:
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.elvis@gmail.com>
To: Allan Kamau <kamauallan@yahoo.com>
Cc: pgsql-admin@postgresql.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@yahoo.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@postgresql.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.



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