Rated 3 out of 5 stars

Sichten (views):

a)

Create view Sicht_a (KFZNR, anzahl_reservierungen)
as Select f.KFZNR, Count(r.fnr)
from fahrzeuge f left outer join reservierung r
on f.fnr = r.fnr

group by f.kfznr order by 1;

Select * from Sicht_a

b)

Create view Sicht_b (Name)
as Select kname
from kunden
where knr Not IN (Select knr from reservierung)
And knr Not In (Select knr from vermietung);

Select * from Sicht_b;

c)

Create view Sicht_c (fnr, bis, abholung)
as Select distinct f.fnr, v.bis, r.abholung
from fahrzeuge f inner join vermietung v
on f.fnr = v.fnr
inner join reservierung r
on f.fnr = r.fnr

where v.bis > r.abholung;

Select * from Sicht_c

Rated 3 out of 5 stars

Trigger:

Create or replace trigger t1
after insert or update of abreise, znr
on belegung
for each row
declare
an date;
cursor otto is
Select anreise from reservierung
where znr =:new.znr;
begin
open otto;
loop
fetch otto into an;
exit when otto%notfound;
if an > :new.abreise then
raise_application_error(-20111, 'Fehler');
end if;
end loop;
close otto;
end;

Rated 3 out of 5 stars

Hotel1:

import java.sql.*;

public class Hotelverwaltung_Reservierung
{
public static void main(String[] args) {
Driver treiber = null;
Connection verbindung = null;
Statement befehl = null;
ResultSet daten = null;
String datenbank = "jdbc:oracle:thin:@dbserver2:1521:ora10",kennung ="bbsh8abe",passwort="RKa7zs";



try {
treiber = new oracle.jdbc.driver.OracleDriver();
DriverManager.registerDriver(treiber);
verbindung = DriverManager.getConnection(datenbank,kennung,passwort);
befehl = verbindung.createStatement();
//################################################################################
// Hier die Lösung der Aufgabe einfügen
daten = befehl.executeQuery("Select r.knr, z.znr, r.anreise, r.abreise from h_zimmer z left join h_reservierung r on z.znr = r.znr order by z.znr, r.anreise");

//leere Menge prüfen:
if(!daten.next())
System.out.println("Leere Menge");
else do {
System.out.println(daten.getInt(1));

//Nullbehandlung:
int knr = daten.getInt(2);
if (daten.wasNull())
System.out.println("keine Reservierung!");
else
System.out.println(knr);

} while(daten.next());
daten.close();
//################################################################################
}
catch (SQLException sql){
do {
System.out.println(sql.toString());
System.out.println("Fehler: "+ sql.getErrorCode());
}while (sql.getNextException() != null);
}
catch (Exception e){ System.out.println("Fehler: " + e);}
finally {try{
verbindung.close();}
catch (Exception e){ System.out.println("Fehler: " + e);}
}
}
}

Rated 3 out of 5 stars

Hotel2:

import java.sql.*;

public class Hotelverwaltung_Rabatt
{
public static void main(String[] args) {
Driver treiber = null;
Connection verbindung = null;
Statement befehl = null;
Statement befehl2 = null; //neue Variable erstellen!
ResultSet daten = null;
ResultSet daten2 = null; //Neue Variable erstellen!
String datenbank = "jdbc:oracle:thin:@dbserver2:1521:ora10",kennung ="bbsh8abe",passwort="RKa7zs";



try {
treiber = new oracle.jdbc.driver.OracleDriver();
DriverManager.registerDriver(treiber);
verbindung = DriverManager.getConnection(datenbank,kennung,passwort);
befehl = verbindung.createStatement();
befehl2 = verbindung.createStatement(); //neues Statement erstellen!
//################################################################################
// Hier die Lösung der Aufgabe einfügen
verbindung.setAutoCommit(false);

daten = befehl.executeQuery("Select knr from h_kunde where knr not in (select knr from h_reservierung)");

//leere Menge prüfen:
if(!daten.next())
System.out.println("Alle Kunden haben Reservierungen");
else do {

//Nullbehandlung:
int knr = daten.getInt(1);
daten2 = befehl2.executeQuery("Select rabatt from h_sonderangebote Where knr = " + knr);

if (!daten2.next()){
//insert
int anzahl = befehl2.executeUpdate("insert into h_sonderangebote values (" + knr + ",10)");
}
else{
//update
int anzahl = befehl2.executeUpdate("update h_sonderangebote set rabatt = 10 where knr = " + knr + " and rabatt < 10");
}

}while(daten.next());
daten.close();

verbindung.commit();
//################################################################################
}
catch (SQLException sql){
verbindung.rollback();
do {
System.out.println(sql.toString());
System.out.println("Fehler: "+ sql.getErrorCode());
verbindung.rollback();
}while (sql.getNextException() != null);
}
catch (Exception e){ System.out.println("Fehler: " + e);}
finally {try{
verbindung.close();}
catch (Exception e){ System.out.println("Fehler: " + e);}
}
}
}

Rated 3 out of 5 stars

Auto1:

import java.sql.*;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Vorlage {
public static void main(String[] args) {
Driver treiber = null;
Connection verbindung = null;
Statement befehl = null;
ResultSet daten = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
verbindung = DriverManager.getConnection(
"jdbc:oracle:thin:@dbserver2:1521:ora10", "bbsh8abe",
"RKa7zs");
System.out.println("DB Verbindung hergestellt");
befehl = verbindung.createStatement();

//#################################################################################
// Hier die Lösung der Aufgabe einfügen

System.out.print ("Bitte Kundennummer angeben: ");
int knr = Eingabe.readInt();

daten = befehl.executeQuery("Select k.kname, f.kfznr, r.abholung, r.rueckgabe from Kunden k inner join Reservierung r on k.knr = r.knr inner join Fahrzeuge f on f.fnr = r.fnr where k.knr = " + knr + "order by 3");

//leere Menge prüfen:
if(!daten.next())
System.out.println("Leere Menge");
else do {
System.out.println(daten.getString(1) + "\n" + daten.getString(2) + "\n" + daten.getString(3) + "\n" + daten.getString(4));

//Nullbehandlung:
if (daten.wasNull())
System.out.println("noch keine Reservierungen!");
else
System.out.println(knr);

} while(daten.next());
daten.close();

//##################################################################################

} catch (SQLException sql) {
do {
System.out.println(sql.toString());
System.out.println("Fehler: " + sql.getErrorCode());
} while (sql.getNextException() != null);
} catch (Exception e) {
System.out.println("Fehler: " + e);
} finally {
try {
verbindung.close();
} catch (Exception e) {
System.out.println("Fehler: " + e);
}
}
}
}

Rated 3 out of 5 stars

Auto2:

import java.sql.*;

public class Vorlage2 {
public static void main(String[] args) throws SQLException {
Driver treiber = null;
Connection verbindung = null;
Statement befehl = null;
ResultSet daten = null;

try {
Class.forName("oracle.jdbc.driver.OracleDriver");
verbindung = DriverManager.getConnection(
"jdbc:oracle:thin:@dbserver2:1521:ora10", "bbsh8abe",
"RKa7zs");
System.out.println("DB Verbindung hergestellt");
befehl = verbindung.createStatement();

//#################################################################################
// Hier die Lösung der Aufgabe einfügen
verbindung.setAutoCommit(false);

System.out.print ("Bitte defektes Auto angeben fnr: ");
int fnralt = Eingabe.readInt();

daten = befehl.executeQuery("Select f.fnr, f.beschreibung, f.preis from Fahrzeuge f Where not EXISTS (Select v.fnr from vermietung v where f.fnr = v.fnr)");

if (!daten.next()) {

System.out.println("Keine Ersatzfahrzeuge vorhanden!");
daten = befehl.executeQuery("Select k.kname from Kunden k inner join Vermietung v on k.knr = v.knr where f.fnr = " + fnralt);

if (daten.next()) {

System.out.println(daten.getString(1));
int anzahl = befehl.executeUpdate("delete from vermietung where fnr = " + fnralt);
}
}
else {
int fnrneu = daten.getInt(1);

do {
System.out.println(daten.getString(1) + "\n" + daten.getString(2) + "\n" + daten.getString(3));
} while(daten.next());

int anzahl = befehl.executeUpdate("update vermietung set fnr = " + fnrneu + " where fnr = " + fnralt);
}
daten.close();

verbindung.commit();
//##################################################################################

} catch (SQLException sql) {
verbindung.rollback();
do {
System.out.println(sql.toString());
System.out.println("Fehler: " + sql.getErrorCode());
} while (sql.getNextException() != null);
} catch (Exception e) {
System.out.println("Fehler: " + e);
} finally {
try {
verbindung.close();
} catch (Exception e) {
System.out.println("Fehler: " + e);
}
}
}
}