Izabela
Korzińska
Architekt /
Developer ETL/TEam
Leader, Roche Polska
Temat: ORACLE 10g - DB link, inserty i wyimaginowane CLOB-y
Mam kłopot i sądzę, że jest to problem z optymalizatorem, który po swojemu realizuje operację MINUS. Uruchomienie poniższego kodu powoduje błąd: "ORA-22992: cannot use LOB locators selected from remote tables".1. Tabela brel.kth_adresy@abc zawiera 2 pola typu CLOB, ale one tutaj nie są selectowane.
Tabela uat_dls.tmp_dls_tabele_probka_tst nie zawiera w ogóle lobów.
2. ID jest typu Number(10).
INSERT INTO uat_dls.dls_rekordy_bledne (
dls_tabela_id
,pk_biznesowy_wartosc
,inf_przetwarzanie_id
,czy_nadmiarowy_w_dls
,inf_proces_weryfikacji_id
)
SELECT 66
,id
,52
,1
,224
FROM (SELECT id
FROM (SELECT tab.*
,row_number ( ) OVER (PARTITION BY id ORDER BY tab.inf_date DESC)
rn
FROM dwh_load_stage.kth_adresy tab
JOIN
uat_dls.tmp_dls_tabele_probka_tst tst
ON tst.pk_biznesowy_wartosc = to_char ( id ))
WHERE rn = 1
MINUS
SELECT id
FROM brel.kth_adresy@abc tab
JOIN
uat_dls.tmp_dls_tabele_probka_tst tst
ON tst.pk_biznesowy_wartosc = to_char ( id ));
3. Zaden z poniższych kodów się nie wywala, więc zakładam, że problemem jest operacja optymalizacji odejmowania.
INSERT INTO uat_dls.dls_rekordy_bledne (
dls_tabela_id
,pk_biznesowy_wartosc
,inf_przetwarzanie_id
,czy_nadmiarowy_w_dls
,inf_proces_weryfikacji_id
)
SELECT 66
,id
,52
,1
,224
FROM (SELECT id
FROM brel.kth_adresy@abc tab
JOIN
uat_dls.tmp_dls_tabele_probka_tst tst
ON tst.pk_biznesowy_wartosc = to_char ( id ));
INSERT INTO uat_dls.dls_rekordy_bledne (
dls_tabela_id
,pk_biznesowy_wartosc
,inf_przetwarzanie_id
,czy_nadmiarowy_w_dls
,inf_proces_weryfikacji_id
)
SELECT 66
,id
,52
,1
,224
FROM (SELECT id
FROM (SELECT tab.*
,row_number ( ) OVER (PARTITION BY id ORDER BY tab.inf_date DESC)
rn
FROM dwh_load_stage.kth_adresy tab
JOIN
uat_dls.tmp_dls_tabele_probka_tst tst
ON tst.pk_biznesowy_wartosc = to_char ( id ))
WHERE rn = 1);
Czy jest jakiś HINT, który powie oracle'owi: "weź tylko to pole, które user napisał, że chce wziąć", bo mam wrażenie, że on z jakiegoś powodu próbuje odejmować całe wiersze(?)?
A może czegoś nie zauważyłam?Izabela Korzińska edytował(a) ten post dnia 06.04.11 o godzinie 17:32Izabela Korzińska edytował(a) ten post dnia 06.04.11 o godzinie 17:34