I believe you really mean
my_proc('x','y','a,b,c')
if that was the case I did something similar
the key part is replace(p_avg_col,',','),avg(')Code:create or replace package body ins_media as procedure media_semana(p_ori_owner varchar2, p_ori_tab varchar2, p_avg_col varchar2, p_predicate varchar2, p_group_col varchar2, p_des_owner varchar2, p_des_tab varchar2) is l_sql_str varchar2(2000); begin l_sql_str := 'insert into ' || p_des_owner || '.' || p_des_tab || ' select ' || p_group_col || ', avg(' || replace(p_avg_col,',','),avg(') || ') from ' || p_ori_owner || '.' || p_ori_tab || ' where ' || p_predicate || ' between trunc(sysdate) - 7500 and trunc(sysdate) group by ' || p_group_col; execute immediate l_sql_str; dbms_output.put_line(sql%rowcount); dbms_output.put_line(l_sql_str); end media_semana; example executing EXEC INS_MEDIA.MEDIA_MES('LSC', 'EMP', 'COMM, SAL', 'HIREDATE', 'DEPTNO', 'LSC', 'EMP_TEST')
I have not pasted the whole code




Reply With Quote