Zapytanie w PL/SQL

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 24
0

Witam ,

próbuje napisać update na bazę oracle

mój kod

Kopiuj
 UPDATE s
SET s.number = w.number
FROM CASE s
JOIN Dokument d on d.CASEID =s.ID
JOIN Paper w on w.DOKUMENTID =d.ID and w.number is NOT NULL 
WHERE s.number IS NULL 
AND s.secondNumber IS NULL
AND s.FIRSTNAME = w.FIRSTNAME
AND s.SURNAME = w.SURNAME;

Chce updatowac wszystkie wiersze z warunkami jak powyższej, w Oracle jednak zapytanie nie działa , proszę o pomoc oraz wskazówki

woolfik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1611
0

Po pierwsze jaki błąd Ci oracle zwraca, po drugie składania jakiej użyłeś teorytycznie zadziała w MSSQL w Oracle ... raczej nie gdyż można to zrobić tak:

Kopiuj
UPDATE table1 t1
   SET (name, desc) = (SELECT t2.name, t2.desc
                         FROM table2 t2
                        WHERE t1.id = t2.id)
 WHERE EXISTS (
    SELECT 1
      FROM table2 t2
     WHERE t1.id = t2.id )

lub tak:

Kopiuj
UPDATE (SELECT t1.id, 
               t1.name name1,
               t1.desc desc1,
               t2.name name2,
               t2.desc desc2
          FROM table1 t1,
               table2 t2
         WHERE t1.id = t2.id)
   SET name1 = name2,
       desc1 = desc2

Kolejna rzecz, która rzuciła mi się w oczy to FROM CASE s czy CASE u ciebie to nazwa tabeli? Nie wiem czy przypadkiem to nie jest też problem

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.