他の質問で提案されたものと同じ動的SQLアプローチを使用する必要があります
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;
しかし、前の質問で提起されたのと同じ一般的な反対意見があります。データモデルには根本的な欠陥があります。 MALE
用に別の行を用意しておくとはるかに効果的です。 およびFEMALE
male
に個別の列を設定するのではなく、調査結果 およびfemale
結果。