View Full Version : SQL Datenfeld in Tabelle einfügen
Bevor du es so kompliziert machst, erstelle doch einfach eine View, die die Felder in der gewünschten Reihenfolge enthält und arbeite dann mit dieser.
Bevor du es so kompliziert machst, erstelle doch einfach eine View, die die Felder in der gewünschten Reihenfolge enthält und arbeite dann mit dieser.
Das ist schon ein gangbarer Weg.
Aber ich bin halt eher für die Anpassung in der DB.
Ich möchte es einfach wissen, ev. braucht man das ja später einmal.
LG
Nun mit etwas Aufwand geht das schon.
Erstelle eine neue Tabelle mit den Feldern in der gewünschten Reihenfolge.
Kopiere die Datei (CPYF *MAP *DROP, SQL insert into NewFile (f1, f2, ...) select f1,f2, ... from oldfile).
Anschließend alle Abhängigkeiten (LF's, Views, ...) entfernen, alte Datei löschen, neue Datei umbenennen und Abhängigkeiten neu erstellen.
Was du da "vorhast" ist nun mal nicht "State of the Art of SQL".
Dafür gibts ja gerade die Views um gewisse Sachen zu verbergen, zu vereinfachen usw.
Das ist schon ein gangbarer Weg.
Aber ich bin halt eher für die Anpassung in der DB.
Ich möchte es einfach wissen, ev. braucht man das ja später einmal.
LG
Das ist eine Datenbank, kein Datenschrank!
D*B
Was du da "vorhast" ist nun mal nicht "State of the Art of SQL".
Dafür gibts ja gerade die Views um gewisse Sachen zu verbergen, zu vereinfachen usw.
Die Möglichkeiten mit neuer Datenbank oder über View sind mir ja bekannt.
Ich möchte den Aufwand einfach nur gering halten.
Und möchte auch nur wissen ob es geht mit SQL oder nicht. Schließlich kann man nun ab V7R1 auch ein neues Feld in der DB "Positionieren". Das war ja bisher auch nicht "State of the Art" oder?
Thx
Das ist eine Datenbank, kein Datenschrank!
D*B
Korrekt, auch diese Datenbank darf sich weiterenwickeln ;)
andreaspr@aon.at
06-09-13, 10:22
Schließlich kann man nun ab V7R1 auch ein neues Feld in der DB "Positionieren". Das war ja bisher auch nicht "State of the Art" oder?
Unter Oracle ging das schon früher.
Speichertechnisch macht es dort sogar durchaus Sinn Spalten in eine bestimmte Reihenfolge zu setzen.
Dafür gibt es einige Kriterien die dabei zu beachten wären:
* Datentyp
* Länge
* Verwendung (wenn nicht SELECT * verwendet wird)
Das sind jedoch so kleine Geheimnisse der Datenbank die heute kaum noch einer kennt und es auch nur in extremen Fällen Sinn macht sie zu kennen.
lg Andreas
Was immer man mit der "positionierung" bezwecken will, es ist da eher alles sinnlos.
Mit jeder View konnte ich das schon seit den 80ern "gerade" biegen.
Views kosten keinen "Strom" im Gegensatz zu Indizes. Ich weiß nicht, warum man sich bei Views einfach scheut.
Die interne Speicherung einer DB interessiert mich nicht.
Es gibt inzwischen sogar "spaltenorientierte" DB's, die also die Daten nicht horizontal sondern vertikal speichern.
Für Perfomance sorgen da ganz andere Methoden.
Ich habe erst letztlich eine komplexe Abfrage mit derived Tables von 2 Sätzen/Sekunde auf 1000 Sätze/Sekunde optimiert.
Da ist mir die Reihenfolge der Speicherung vollkommen egal.
Ich bin da eh ganz bei dir!
Ich möchte es einfach nur wissen ob es funtkioniert oder nicht.
Die Frage nach dem ob es funktioniert oder nicht hat mit der Ausführung ja nichts zu tun ;-)
Schönes Wochenende!
andreaspr@aon.at
06-09-13, 12:43
Wie Pikachu schon sagte, kannst du dein Source File ensprechend anpassen und dann einfach ein
CHGPF FILE(TAB1) SRCFILE(TAB1/QWASAUCHIMMERSRC)
aus.
lg Andreas