Sie müssten denselben dynamischen SQL-Ansatz verwenden, der in Ihrer anderen Frage vorgeschlagen wurde
PROCEDURE get_stat (gender IN VARCHAR2)
AS
v_sql varchar2(1000);
v_param varchar2(100) := 'AVG_WEIGHT';
v_stat number;
BEGIN
v_sql := 'SELECT ' || gender || ' FROM survey WHERE parameter = :1';
EXECUTE IMMEDIATE v_sql
INTO v_stat
USING v_param;
END get_stat;
Aber Sie hätten die gleichen allgemeinen Einwände, die in Ihrer früheren Frage erhoben wurden – das Datenmodell ist grundlegend fehlerhaft. Mit einer separaten Zeile für MALE
wären Sie viel besser bedient und FEMALE
Umfrageergebnisse, anstatt separate Spalten für male
zu haben und female
Ergebnisse.