Hi, I am learning how to use PL/PGSQL and have come upon something that I just don't seem to be able to solve on my own.
I have a function, which takes a column name as an argument. A FOR loop iterates over rows, using a RECORD datatype to store each iteration of the loop. If I hard-code in a column name into some calculation, things work fine. However, I cannot seem to figure out how to _dynamically_ access a column from a RECORD datatype: -- this works fine : 'field_pct_clay' is a hard-coded column name DEFINE hz_record RECORD; wt_column FLOAT; thick FLOAT; ... wt_column := wt_column + (hz_record.field_pct_clay * thick) ; -- this does not work: 'the_column' is an argument to the function being defined: wt_column := wt_column + (hz_record.the_column * thick) ; ^^^^^^^^^^^^^ obviously, the interpreter tells me that there is no column named 'the_column' in the RECORD iterator... Searching on google, it seems that a dynamic expression like this needs to be evaluated with the EXECUTE keyword.... However something like this does not work: wt_column := EXECUTE 'wt_column + (hz_record.' || quote_ident(the_column) || ' * thick)' ; any tips would be a great help! thanks! -- Dylan Beaudette Soils and Biogeochemistry Graduate Group University of California at Davis 530.754.7341 _______________________________________________ vox-tech mailing list vox-tech@lists.lugod.org http://lists.lugod.org/mailman/listinfo/vox-tech