Mam następujący kod:ORA-00933: polecenie SQL nie prawidłowo zakończony
begin
for i in 1..2 loop
insert into dba_xy.despatch
select desp_id_seq.nextval,
dbms_random.string('U',5),
trunc(dbms_random.value(0000,9999)),
prod_id from dba_xy.product
prod_name from dba_xy.product;
end loop;
koniec;
Kiedy go uruchomić, Oracle daje mi się następujący komunikat o błędzie:
prod_name from dba_xy.product;
*
błędu na linii 8: ORA-06550: linia 8, kolumna 29: PL/SQL: ORA-00933: SQL komenda nie prawidłowo zakończony ORA-06550: wiersz 3, kolumna 2: PL/SQL: Oświadczenie SQL ignorowane
Co staram się zrobić, to połączyć istniejący prod_id i usługą PROD_NAME z nowymi danymi umieszczonymi w tabeli wysyłki. Ustawiłem prod_name jako unikalny klucz w tabeli produktów i prod_id jako klucz podstawowy i ustawiłem oba jako ograniczenia klucza obcego w tabeli wysyłki. Muszę umieścić nazwę prod_name w tabeli wysyłki, aby umożliwić czytelnikom tabeli lepsze zrozumienie, jaka nazwa prod_name musi zostać znaleziona itd., A nie tylko podanie prod_id, które nie będzie miało dla nich żadnego sensu. Ale może pomyślałem, że nie potrzebuję prod_id w tabeli wysyłkowej. Proszę o pomoc.
Po wkropleniu kolumnę prod_id z tabeli wysyłki, i zmieniać mi kod:
begin
for i in 1..2 loop
insert into dba_xy.despatch
select desp_id_seq.nextval,
dbms_random.string('U',5),
trunc(dbms_random.value(0000,9999)),
prod_name from dba_xy.product;
end loop;
koniec; /
i następujący komunikat o błędzie pojawił się o unikalnej przymusu: rozpocząć * BŁĄD w linii 1: ORA-00001 : UNIQUE (DBA_XY.PROD_NAME_UC) naruszył ORA-06512: w wierszu 3
Próbowałem uruchomić swój kod widoku i pojawił się następujący błąd: dołączyć dba_xy.produkt p * BŁĄD w linii 5: ORA-00905: brakujące słowo kluczowe – taksIV
Moje złe - Zapomniałem rzeczywistych kryteriów JOIN. Wypróbuj teraz kod widoku. –
Haha, to wszystko dobrze. Dziękuję Ci. – taksIV