Mam takie pytanko czy jest możliwość w ORACLE zaktualizowania danych w jednej
tabeli danymi z drugiej.
W SQL serwerze robi się to tak:
UPDATE "POLE_TAB1"
SET "POLE_TAB1" = (MONTHS_BETWEEN("POLE1_TAB2","PO LE2_TAB2"))/12
FROM "TAB1", "TAB2"
WHERE "KLUCZ_TAB1" = "KLUCZ_TAB2"
ale niestety w Oraclu mi to nie przechodzi, może składnia jest jakaś inna.
Otrzymuję taki błąd:
ORA-00933: polecenie SQL niepoprawnie zakończone
DS-DBMS-E390: SQL statement in error at position 92:
ze wskazaniem na klauzulę FROM
Będę wdzięczny za podpowiedzi!
Pozdrawiam,
salfatore
--
============= P o l N E W S ==============
archiwum i przeszukiwanie newsów
http://www.polnews.pl
Mozna:
UPDATE TAB1 t1
SET POLE_TAB1 = (select MONTHS_BETWEEN(POLE1_TAB2,POLE2_TAB2)/12
FROM TAB2 t2
WHERE t1.KLUCZ_TAB1 = t2.KLUCZ_TAB2
)
where exists(select 1 from FROM TAB2 t2
WHERE t1.KLUCZ_TAB1 = t2.KLUCZ_TAB2)
- uwaga: podzapytanie dostarczające wartość dla pola "POLE_TAB1" musi
zwracac tylko i wyłącznie jeden wiersz
- warunek where operacji update dodany po to żeby zmodyfikowaniu uległy
jedynie wiersze tablicy TAB1, które
spełniają warunek łączenia z TAB2
Pozdrowienia
WK
Dzięki !!