Stored Proc Problem

Started by Robert Landrumover 18 years ago2 messagesgeneral
Jump to latest
#1Robert Landrum
rlandrum@aol.net

I'm writing a stored procedure that will execute as a trigger.
Arguments being passed to the procedure are field names.

My goal is to convert those field names into the field values. However,
I've not been successful. I thought that the following should have worked.

EXECUTE ''field_val := NEW.''||tg_argv[1]||'';'';

Nor does

EXECUTE ''SELECT INTO field_val NEW.''||tg_argv[1]||'';'';

I've tried using open for execute too... No luck.

Is this possible in pure SQL?

Rob

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Landrum (#1)
Re: Stored Proc Problem

Robert Landrum <rlandrum@aol.net> writes:

I'm writing a stored procedure that will execute as a trigger.
Arguments being passed to the procedure are field names.

My goal is to convert those field names into the field values. However,
I've not been successful. I thought that the following should have worked.

EXECUTE ''field_val := NEW.''||tg_argv[1]||'';'';

Nor does

EXECUTE ''SELECT INTO field_val NEW.''||tg_argv[1]||'';'';

I've tried using open for execute too... No luck.

Is this possible in pure SQL?

Well, that's not "pure SQL", it's plpgsql ... but the answer is no.
plpgsql can't deal with selection of run-time-specified fields from
its variables. You'd have better luck coding this in one of the other
PL languages.

regards, tom lane