Ho il seguente codice:ora-00933: comando SQL non correttamente concluso
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;
fine;
quando l'eseguo, oracolo mi dà il seguente messaggio di errore:
prod_name from dba_xy.product;
*
ERRORE alla linea 8: ORA-06550: la linea 8, colonna 29: PL/SQL: ORA-00933: SQL comando non correttamente concluso ORA-06550: linea 3, colonna 2: PL/SQL: istruzione SQL ignorato
Quello che sto cercando di fare è collegare il prod_id e PROD_NAME esistenti con nuovi dati inseriti nella tabella di spedizione. Ho impostato prod_name come chiave univoca nella tabella del prodotto e prod_id come chiave primaria e ho impostato entrambi come vincoli di chiave esterna nella tabella di spedizione. Devo includere il prod_name nella tabella di distribuzione per consentire ai lettori della tabella di avere più comprensione di ciò che prod_name deve essere trovato ecc., Piuttosto che dare solo il prod_id che non avrà alcun senso per loro. Ma forse stavo pensando che non ho bisogno di prod_id nel tavolo delle spedizioni. Per favore aiuto.
Dopo aver lasciato la colonna prod_id dalla tabella spedizione, ho modificato il mio codice:
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;
fine; /
e il seguente messaggio di errore è venuto fino a circa il vincolo univoco: iniziano * ERRORE alla linea 1: ORA-00001: vincolo univoco (DBA_XY.PROD_NAME_UC) violato ORA-06512: alla linea 3
ho provato a fare funzionare il codice di vista e si avvicinò con il seguente errore: unirsi dba_xy.prodotto p * ERRORE alla riga 5: ORA-00905: parola chiave mancante – taksIV
Il mio male: ho dimenticato i criteri di JOIN effettivi. Prova ora il codice di visualizzazione. –
Haha, va tutto bene. Grazie. – taksIV