Ahoj. V oracle se moc nevyznam, tak se snazim dat dokupy nejake reseni podle googlu.
Mam tabulku. V ni nejake hodnoty. A potrebuji do ni vlozit nove radky nebo updatovat stavajici. Ale nesmi se updatovat, pokud nenastane zmena, protoze se automaticky uklada cas aktualizace a nechci, aby se menil, kdyz neni treba data opravit.
Nasel jsem nejaka 2 reseni, ale, pac se v oraclu nevyznam, tak to mozna dela uplne neco jineho, nez se z toho pokousim dostat.
-- domnivam se, ze tohle asi udela insert ok, a update natvrdo, nehlede na to, zda je treba nebo ne (coz muze byt pro vetsinu aplikaci ok, ale ne pro mne)
UPSERT
INTO DATA_WAREHOUSE.CIS_PROJEKTU_SU
VALUES ('102', '2020-1', 'House and Work', 'House and Work', 'https://projekty.slu.cz/evid3_app.php?what=form_export2&do=export_is2_view&idform_export2=102', '2021-09-01', '2024-01-31')
line=318 code=900: ORA-00900: neplatný příkaz SQL
-- verze 2, kde se uplne ztraci, takze to mozna je uplne spatne
MERGE INTO DATA_WAREHOUSE.CIS_PROJEKTU_SU dest USING (
SELECT
ID,
CIS_PROJEKTU,
NAZEV_KRATKY,
NAZEV,
URL,
DAT_ZAHAJENI,
DAT_UKONCENI
FROM
dual
) src ON (dest.ID = src.ID) WHEN MATCHED THEN
UPDATE
SET
(
CIS_PROJEKTU = '2020-1', NAZEV_KRATKY = 'House and Work',
NAZEV = 'House and Work', URL = 'https://projekty.slu.cz/evid3_app.php?what=form_export2&do=export_is2_view&idform_export2=102',
DAT_ZAHAJENI = '2021-09-01', DAT_UKONCENI = '2024-01-31'
)
WHERE
src.CIS_PROJEKTU <> dest.CIS_PROJEKTU
OR src.NAZEV_KRATKY <> dest.NAZEV_KRATKY
OR src.NAZEV <> dest.NAZEV
OR src.URL <> dest.URL
OR src.DAT_ZAHAJENI <> dest.DAT_ZAHAJENI
OR src.DAT_UKONCENI <> dest.DAT_UKONCENI WHEN NOT MATCHED THEN INSERT (
ID, CIS_PROJEKTU, NAZEV_KRATKY, NAZEV,
URL, DAT_ZAHAJENI, DAT_UKONCENI
)
VALUES
(
(
'102', '2020-1', 'House and Work',
'House and Work', 'https://projekty.slu.cz/evid3_app.php?what=form_export2&do=export_is2_view&idform_export2=102',
'2021-09-01', '2024-01-31'
)
)
line=318 code=1747: ORA-01747: neplatná specifikace uživatel.tabulka.sloupec, tabulka.sloupec nebo sloupec
(kod jsem preformatoval z jednoradkoveho zapisu, pro forum)