Anonymní profil peter – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil peter – Programujte.comAnonymní profil peter – Programujte.com

 

Příspěvky odeslané z IP adresy 2001:718:2601:258:45c0:3357:95ac:adeb...–

peter
Oracle › insert nebo update
9. 8. 2022   #390332

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)

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý