Ich habe den folgenden Code:ora-00933: SQL-Befehl nicht richtig beendet
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;
Ende;
Wenn ich es laufen, Orakel gibt mir die folgende Fehlermeldung:
prod_name from dba_xy.product;
*
FEHLER in Zeile 8: ORA-06550: Linie 8, Spalte 29: PL/SQL: ORA-00933: SQL Befehl beendet nicht richtig ORA-06550: Zeile 3, Spalte 2: PL/SQL: SQL-Anweisung ignoriert
Was ich versuche zu tun, verbinden die bestehenden prod_id und prod_name mit neuen Daten in die Versandtabelle eingefügt. Ich habe prod_name als eindeutigen Schlüssel in der Produkttabelle und prod_id als Primärschlüssel festgelegt und beide als Fremdschlüsselbeschränkungen in der Versandtabelle festgelegt. Ich muss den prod_name in die Versandtabelle aufnehmen, um den Lesern der Tabelle mehr Verständnis dafür zu geben, was prod_name gefunden werden muss usw., anstatt nur die prod_id anzugeben, die für sie überhaupt keinen Sinn ergibt. Aber vielleicht dachte ich, ich brauche prod_id nicht in der Tabelle. Bitte helfen.
Nach der prod_id Spalte aus der Depesche Tabelle löschen, geändert ich meinen Code:
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;
Ende; /
und die folgende Fehlermeldung kam über die einzigartige Einschränkung up: ORA-00001:: unique constraint (DBA_XY.PROD_NAME_UC) verletzt ORA-06512: in Zeile 3
* FEHLER in Zeile 1 beginnt
Ich habe versucht, Ihre Ansicht Code ausgeführt und es kam mit dem folgenden Fehler: Join dba_xy.Produkt p * FEHLER bei Zeile 5: ORA-00905: fehlendes Schlüsselwort – taksIV
Mein schlechtes - ich habe die tatsächlichen JOIN-Kriterien vergessen. Probieren Sie den Ansichtscode jetzt aus. –
Haha, das ist alles gut. Vielen Dank. – taksIV