Aktualizacja tabeli

0

Witam.
Proszę o pomoc w poniższym problemie.

Mam tabelę INNE, w której są kolumny ID oraz STACJA_ID. Mam również tabelę STACJA_SCHEMAT z takimi kolumnami jak OBIEKT_ID, STACJA_ID i NAZWA_TABELI.
Chciałem w tabeli INNE wpisać w kolumnę STACJA_ID wartość '1000000108' wszędzie tam gdzie wartość w kolumnie ID tej tabeli jest taka sama jak wartość kolumny OBIEKT_ID z tabeli STACJA_SCHEMAT i dodatkowo w kolumnie STACJA_ID tabeli STACJA_SCHEMAT jest wartość '1000000108' a w kolumnie NAZWA_TABELI wartość 'INNE'. Stworzyłem zapytanie jak poniżej jednak próba uruchomienia kończy się błędem.

Dodam, że wiem o co chodzi (zapytanie w nawiasie zwraca więcej wyników niż jeden) jednak nie mam pojęcia jak inaczej to zapisać.
Proszę o pomoc.

update INNE set STACJA_ID = '1000000108' where ID = (select OBIEKT_ID from STACJA_SCHEMAT where STACJA_ID = '1000000108' and NAZWA_TABELI = 'INNE')

Error starting at line : 1 in command -
update GAS_FITTING set GAS_STATION_ID = '1000000108' where ID = (select OBJECT_ID from GAS_STATION_SCHEMA where GAS_STATION_ID = '1000000108' and TABLE_NAME = 'GAS_FITTING')
Error report -
SQL Error: ORA-01427: jednowierszowe podzapytanie zwraca więcej niż jeden wiersz
01427. 00000 - "single-row subquery returns more than one row"
*Cause:
*Action:

0

kiedy piszesz where id = cośtam baza oczekuje jednego wiersza w podzapytaniu(co zreszta mowi tresc bledu)
Zamien where id = na where id in (

0

Działa. Wielkie dzięki za pomoc.

0

Znowu potrzebuję pomocy.

W tabeli ODCINEK znajdują się kolumny ULICA_SŁOWNIK i ULICA_TEKST. W drugiej tabeli SLOWNIK znajdują się kolumny ID (wartość wpisywana do pola ULICA_SLOWNIK w tabeli ODCINEK), NAZWA_1 (zawsze coś zawiera) i NAZWA_2 (może być pusta). Pole ULICA_SLOWNIK zawiera ciąg cyfr odnoszących się do pola ID.
Chciałbym teraz zrobić dwie czynności:

  1. W tabeli ODCINEK tam gdzie pole ULICA_TEKST jest puste, wpisać do pola ULICA_TEKST wartość takiej postaci: [wartość pola NAZWA_2 jeśli coś zawiera][spacja jeśli NAZWA_2 coś zawiera][wartość pola NAZWA_1] dla takich samych wartości w polach ID i ULICA_SLOWNIK

  2. Następnie chciałbym znaleźć w tabeli ODCINEK wszystkie rekordy gdzie wartość w polu ULICA_TEKST jest różna od tej powstałej po złożeniu [wartość pola NAZWA_2 jeśli coś zawiera][spacja jeśli NAZWA_2 coś zawiera][wartość pola NAZWA_1] przy założeniu, że wartość w polu ULICA_SLOWNIK jest równa tej w polu ID

Mam nadzieję, że tego nie zagmatwałem za bardzo. Poniżej przykładowy wycinek tabeli SLOWNIK
ID NAZWA_1 NAZWA_2
1637 Bohaterów Getta
2545 Cała
18846 Romera Eugeniusza
5154 Francuska
30250 Owczarka bp. Wojciecha

1 użytkowników online, w tym zalogowanych: 0, gości: 1