Oracle SQL: Aus Tabellenspalte neue Tabelle erzeugen mit automatischem Hochzählen?

Für eine Aufgabe soll ich diverse Teilaufgaben lösen, mit dem endgültigen Ziel, aus einer Tabelle eine Spalte in eine neue Tabelle zu ziehen und in der alten Tabelle mit Hilfe von Fremdschlüsseln auf die neue Tabelle verweisen.

Die Tabellen sehen vereinfacht so aus:

CREATE TABLE alt (
    bezeichner VARCHAR(255) NOT NULL,
    -- ganz viel anderes Gedöns
)

CREATE TABLE neu (
    id INTEGER PRIMARY KEY,
    bezeichner VARCHAR(255) NOT NULL
)

Alles habe ich geschafft, außer einer Sache, nämlich dem Überführen der Einträge as der alten Tabelle in die neue Tabelle. So bekomme ich die Einträge:

SELECT UNIQUE(bezeichner) FROM alt

Das Problem ist aber nun, dass der primäre Schlüssel der neuen Tabelle durch automatisches Hochzählen erreicht werden soll. Das automatische Hochzählen habe ich über Sequenz und Trigger gelöst, aber wie schaffe ich es nun, dass ich das Schlüsselwort DEFAULT benutze, um das automatische Hochzählen zu ermöglichen?

Ich weiß nur, wie man einen Eintrag komplett aus dem Eintrag aus einer anderen Tabelle erstellt über SELECT oder direkt mit Konstanten bzw. Schlüsselworten über INSERT. Was aber, wenn ich nun eine Menge aus einer Tabelle habe und davon praktisch für jeden Wert ein INSERT machen müsste, um DEFAULT für id benutzen zu können? Mehr oder weniger eine Schleife durch alle Werte aus dem SELECT, die dann mithilfe eines INSERT in die neue Tabelle eingefügt werden, schätze ich. Wie mache ich so etwas?

Computer, Software, Technik, sql, programmieren, Java, Datenbank, Informatik, Oracle
1 Antwort
Namespaces in XML verstehen?

Ich habe ein XML-Dokument und ein dazugehöriges XML-Schema, beide liegen lokal auf meinem Rechner im gleichen Verzeichnis. Die könnten beispielsweise, der Einfachheit halber, so aussehen:

<?xml version="1.0" encoding="utf-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 

<xs:complexType name="meinEigenerTyp">   
  <xs:all>     
    <xs:element name="name"type="xs:string"/>  
    <xs:element name="nummer" type="xs:unsignedLong" />   
  </xs:all> 
</xs:complexType>

<xs:element name="meinElement" type="meinEigenerTyp" /> </xs:schema>

Sowie:

<?xml version="1.0" encoding="utf-8"?>
<meinElement>
    <name>Name</name>
    <nummer>0123456789</nummer>
</meinElement>

Ich habe nun die folgenden Aufgabe bekommen:

  • Ich soll in dem XML-Dokument einen relativen Pfad angeben, um das XML-Schema für mein XML-Dokument zu verwenden
  • Damit die Elemente "nicht irgendwo in der Luft herumschweben", soll ich sowohl für das XML-Dokument als auch für das XML-Schema einen passenden Namespace verwenden

Soweit so gut. Allerdings kapier ich überhaupt nicht, was ich machen soll. Ich habe mir https://www.w3schools.com/XML/xml\_namespaces.asp angeschaut, aber ich verstehe nicht, warum da immer eine Webadressen angegeben wird, auch bei den Beispielen im Internet. Meine Dateien liegen doch auf meinem Computer, in einem Verzeichnis und nicht irgendwo im Internet?

Für den ersten Teil der Aufgabe, den relativen Pfad, habe ich mir /Forums/en-US/home?forum=how-to-specify-a-relative-path-for-the-xsd-file-in-the-xml-source-file angeschaut, aber auch verstehe ich nicht, was da gemacht wird.

Könnte mir bitte jemand erklären, wie man die Namespaces verwendet und wie ich dann zu meiner Lösung komme?

Computer, Internet, Software, Technik, programmieren, Informatik, Technologie, XML, Spiele und Gaming
2 Antworten