Answer the question
In order to leave comments, you need to log in
How to insert a dynamic sql oracle variable into a string?
I have a dynamic query:
declare
p_sql clob;
begin
for naprav in (select naprav_name from naprav)
loop
for pokaz in (select * from pokaz)
loop
for group_level in (select * from group_level)
loop
p_sql := '
insert into from_cost_lab_with_love
with cte as (
select
' || pokaz.i_id_pokaz || ' as i_id_pokaz,
' || pokaz.pokaz_measure || ' as pokaz_measure,
' || pokaz.pokaz_describe || ' as "Описание показателя",
' || naprav.naprav_name || ' as "Блок данных",
' || group_level.level_name || ' as level_name,
' || group_level.tb_id || ' as tb_id,
' || group_level.gosb_id || ' as gosb_id,
' || group_level.org_id || ' as org_id,
' || pokaz.pokaz_formula || ' as fact_amt,' --показатель
|| pokaz.pokaz_formula || ' as fc_amt_1,
row_number() over(' || group_level.partition_column || ' order by BE) as rnk
0 as plan_amt,
TO_DATE(CONCAT(CONCAT(FINANSOVYJ_GOD,CONCAT(''0'',KVARTAL*3 - 3)),''01''), ''yyyymmdd'') as period_begin, --начало квартала
LAST_DAY(TO_DATE(CONCAT(CONCAT(FINANSOVYJ_GOD,CONCAT(''0'',KVARTAL*3)),''01''), ''yyyymmdd'')) as period_end, --конец квартала
LAST_DAY(TO_DATE(CONCAT(CONCAT(FINANSOVYJ_GOD,CONCAT(''0'',MESJATS)), ''01''), ''yyyymmdd'')) as rep_date, --дата измерений
TO_DATE(CURRENT_DATE, ''dd.mm.yy'') as load_date,
0 as execution
from erp_trips
)
select *
from cte
where rnk=1;';
dbms_output.put_line(p_sql);
execute immediate p_sql using group_level.partition_column;
end loop;
end loop;
end loop;
end;
sum(distinct RASHODY) over(:1)/count(distinct KOD_TSZ) over(:1)
Answer the question
In order to leave comments, you need to log in
Hello. The over(... part of the query must be either over() or over (partition by...) or over( order by...).
You end up with over ( "value from group_level.partition_column;
"). .. this will not work - the syntax of analytical functions is different:
https://docs.oracle.com/cd/B19306_01/server.102/b1...
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question