natuerlich teste ich das erstmal in SQLPlus - aber da geht ja immer alles! Auch deinen Klammervorschlag hatte ich probiert - der geht auch nicht - diesmal aber zur Laufzeit:
[09:27] siwahofe@faui04a:~/dbueb/aufgabe8$ java booking
java.sql.SQLException: ORA-00920: invalid relational operator
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:830)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2391)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2672)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:527)
at sqlj.runtime.ExecutionContext$OracleContext.oracleExecuteQuery(ExecutionContext.java:1585)
at booking.main(booking.java:172)
Der Code dafuer ist:
#sql bcur = { SELECT booking_class_id FROM (((capacity INNER JOIN aircraft ON aircraft_id) INNER JOIN flight ON aircraft_id) INNER JOIN flight_intervals ON flight_number) WHERE flight_id=112694 };
Ich habe so meine Probleme, wie ich booking.sqlj realisieren soll. Wie kann man die Buchungsklasse und einen Passagier zufällig auswählen? Und wie bestimmt ihr für welches Flugintervall gerade gebucht wird? Kann mir da jemand weiter helfen? Danke!
Also vereinfacht gesagt ist mir der Lösungsweg nicht ganz klar. Und insbesondere wie man auf zufällige Werte (passenger_id, booking_class_id) kommen könnte und wie man flight_id behandelt. Wählt man flight_id auch zufällig aus oder arbeitet man die Liste aller möglichen flght_ids Schritt für Schritt ab. Ich hab mittlerweile auch schon eine Idee, fände es aber cool, wenn du mir evtl. verbal so ein paar Tipps geben könntest, um auch einfach zu sehen, ob ich komplett falsch liege.
Ich behaupte, dass es hier kein richtig oder falsch gibt - so genau, wie die Aufgabenstellung ist, kann man Tausende verschiedene richtige Loesungen abgeben.
Ich iteriere ueber alle Flight_IDs, die ich zuspamme (siehe Output weiter oben), hole mir alle Passagiere, die noch fehlen, und alle Bookingclasses, die fuer den Flug zulaessig sind und suche dann zufaellig Kombinationen aus denen raus, die dann inserted werden. So lange, bis der Trigger zuschlaegt (-> naechster Flug), oder bis die Passagiere ausgehen…