Thread: SELECTing into usertype, how to do it?
I have a type, declared like this: CREATE TYPE type_a AS (member_a varchar,member_b bool ); There is also a table: CREATE TABLE table_a (col_a varchar,col_b bool,col_c int4 ); Now, in a function, I declared type_var variable of type type_a: DECLARE type_var type_a; And then, when I want to fill in the type_var, i do this: type_var.member_a := col_a FROM table_a WHERE col_c = 5;type_var.member_b := col_b FROM table_a WHERE col_c = 5; Is there a way to fill in the type_var, but from just one statement? Here I have two 'selects' on table_a, and that seems as bit expensive when iterated a lot of times. I guess I could do:SELECT col_a, col_b INTO type_var.member_a, type_var.member_b FROM table_A WHERE col_c = 5; but that is a bit hard to read :) Are there more options on doing what I'd like to do? Mario -- Mario Splivalo Mob-Art mario.splivalo@mobart.hr "I can do it quick, I can do it cheap, I can do it well. Pick any two."
am 25.04.2006, um 14:03:07 +0200 mailte Mario Splivalo folgendes: > > And then, when I want to fill in the type_var, i do this: > > type_var.member_a := col_a FROM table_a WHERE col_c = 5; > type_var.member_b := col_b FROM table_a WHERE col_c = 5; > > Is there a way to fill in the type_var, but from just one statement? > Here I have two 'selects' on table_a, and that seems as bit expensive > when iterated a lot of times. > > I guess I could do: > SELECT col_a, col_b INTO type_var.member_a, type_var.member_b FROM > table_A WHERE col_c = 5; > > but that is a bit hard to read :) > > Are there more options on doing what I'd like to do? select into type_var col_a, col_b from table_a ... ; HTH, Andreas -- Andreas Kretschmer (Kontakt: siehe Header) Heynitz: 035242/47215, D1: 0160/7141639 GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net=== Schollglas Unternehmensgruppe ===
On Tue, 2006-04-25 at 14:21 +0200, A. Kretschmer wrote: > am 25.04.2006, um 14:03:07 +0200 mailte Mario Splivalo folgendes: > > > > And then, when I want to fill in the type_var, i do this: > > > > type_var.member_a := col_a FROM table_a WHERE col_c = 5; > > type_var.member_b := col_b FROM table_a WHERE col_c = 5; > > > > Is there a way to fill in the type_var, but from just one statement? > > Here I have two 'selects' on table_a, and that seems as bit expensive > > when iterated a lot of times. > > > > I guess I could do: > > SELECT col_a, col_b INTO type_var.member_a, type_var.member_b FROM > > table_A WHERE col_c = 5; > > > > but that is a bit hard to read :) > > > > Are there more options on doing what I'd like to do? > > select into type_var col_a, col_b from table_a ... ; > Thnx... still, that SELECT INTO looks pretty anoying... it would be neat to type just: type_var := col_a, col_b FROM ... I guess the code would look much more readable... Mario -- Mario Splivalo Mob-Art mario.splivalo@mobart.hr "I can do it quick, I can do it cheap, I can do it well. Pick any two."
am 25.04.2006, um 14:25:50 +0200 mailte Mario Splivalo folgendes: > > > > select into type_var col_a, col_b from table_a ... ; > > > > Thnx... still, that SELECT INTO looks pretty anoying... it would be neat > to type just: > type_var := col_a, col_b FROM ... well-nigh: type_var := (col_a, col_b) FROM ... Andreas -- Andreas Kretschmer (Kontakt: siehe Header) Heynitz: 035242/47215, D1: 0160/7141639 GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net=== Schollglas Unternehmensgruppe ===