Temporäre Tabellen erstellen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

keyboard-billy
***
Beiträge: 53
Registriert: Mo, 27.11.2006 15:17
Wohnort: Nürnberg
Kontaktdaten:

Temporäre Tabellen erstellen

Beitrag von keyboard-billy »

Hi Leutz,

ich möchte eine temporäre Tabelle mittels SQL-Abfrage erstellen.

Nach der HSQLDB-Doku sollte es an sich so funktionieren:

Code: Alles auswählen

-- falls die Tabelle bereits existiert, dann löschen
DROP TABLE "TMP_TAB" IF EXISTS; 

--  Die Tabelle "Tab_A" nach Tabelle "TMP_TAB" kopieren
SELECT * INTO TEMP "TMP_TAB"
FROM "Tab_A";
Nun will ich die Daten der Tabelle "TMP_TAB" auslesen:

Code: Alles auswählen

SELECT * FROM "TMP_TAB";
Als Ergebnis erhalte ich zwar eine Tabelle mit sämtlichen Feldern, jedoch ohne Inhalte.

Wenn ich die Tabelle mit folgendem Code erstelle....

Code: Alles auswählen

-- falls die Tabelle bereits existiert, dann löschen
DROP TABLE "TMP_TAB" IF EXISTS; 

--  Die Tabelle "Tab_A" nach Tabelle "TMP_TAB" kopieren
SELECT * INTO "TMP_TAB"
FROM "Tab_A";
... erhalte ich eine korrekte Tabelle mit Inhalten.

What the hell is wrong? :evil:

Warum darf ich das TEMP Attribut nicht verwenden, wenn ich doch eine temporäre Tabelle erstellen will?
B.t.w.: Wenn ich in der Tabellenansich von Base aktualisiere erscheint die erstellte Tabelle nicht - sie scheint also tatsächlich temporär zu sein!

Greets,
Billy
... im Prinzip ist alles einfach. Vorausgesetzt man weiss, wie's geht!
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Temporäre Tabellen erstellen

Beitrag von Barlee »

Hallo keyboard-billy,

wo hast Du denn den Befehl

Code: Alles auswählen

SELECT * INTO TEMP "TMP_TAB"
FROM 
"Tab_A";
abgesetzt? In der SQL-Ansicht oder unter Extras/SQL??
Als Ergebnis erhalte ich zwar eine Tabelle mit sämtlichen Feldern, jedoch ohne Inhalte.
Ich wollte das einmal nachvollziehen, jedoch scheitert jeglicher Versuch an einem "Table not found"-Fehler. Und zwar schon dann, wenn ich die temporäre Tabelle nur anlegen möchte. Du scheinst schon weiter zu kommen... ;-)
Könntest Du Deinen Weg nochmal schildern?

Gruss Barlee
keyboard-billy
***
Beiträge: 53
Registriert: Mo, 27.11.2006 15:17
Wohnort: Nürnberg
Kontaktdaten:

Re: Temporäre Tabellen erstellen

Beitrag von keyboard-billy »

@Barlee
In der SQL-Ansicht oder unter Extras/SQL??
Ja, genau da!

Und jetzt kommts noch besser:
Ich lege diese besagte Tabelle an, mache den SELECT darauf, sehe nur die Feldnamen aber keinerlei Inhalte :shock: .
Aber damit nicht genug:
Ich beende Base, beende zusätzlich das ganze OOo, schaue in dem Taskmanager, ob der Przess auch wirklich beendet wurde. Nun öffne ich meine Datenbank erneut, mache einen SELECT auf meine TMP_TAB und - voila - das gleiche Ergebnis :? .

Ich würde an dieser Stelle so etwas wie z.B. "... Table not found ..." erwarten, da es sich schließlich um eine temporäre Tabelle handeln sollte.

Erst wenn ich die Tabelle mit DROP TABLE lösche ist sie endgültig weg.

Shit happens..... :x

Greets,
Billy
... im Prinzip ist alles einfach. Vorausgesetzt man weiss, wie's geht!
Antworten