Daniel
Jurak
analityk
programista,
architekt danych PKO
BP SA
Temat: [ORACLE] funkcja i execute immediate
witam,mam taka sytuacje, blok pl/sql wyglada nastepujaco:
declare
v_Data VARCHAR2(8) := '20090101';
begin
execute immediate 'insert into tabela_1 ' ||
'select ' ||
'* ' ||
'from ' ||
'tabela_2 ' || funkcja('XXX');
end
a funkcja zwraca w wyniku taki string
'where data_danych = to_date(v_Data,'rrrrmmdd')'
czyli where tworzony dynamicznie na podstawie tabeli parametrycznej.
jezeli w warunkach where'a nie ma zadnych zmiennych czyli np na sztywno wstawie
w parametrze '= to_date('20090101','rrrrmmdd')' to wszystko smiga.
natomiast problem pojawia sie, jesli chce jeszcze ustawic aby data byla takze zmienna.
pokazuje sie 'ORA-00904: "V_DATA": invalid identifier'
probowalem, takze przenosic date przez argument funkcji, takze nie dziala.
czy gdzies robie blad i powinno to dzialac, czy moze po prostu to nigdy nie bedzie banglac.
Ta wartosc z V_DATA w ktorym momencie powinna być wczytywana do skryptu?
dzieki za odpowiedzi, pozdr.