Stored Proc Problem
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
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