oracle

SQL und die Windows-Zwischenablage

13 Mrz 2015

Der SQL Query Generator

Die Entwicklung von SQL–Anweisungen ist für viele Anwender möglicherweise eine der häufigsten Tätigkeiten. In diesem Newsletter möchten wir Ihnen zeigen, mit welchen Mitteln diese Arbeit effektiver durchgeführt werden kann.

Um mehrere Tabellen miteinander zu verknüpfen, können Sie den KeepTool – Abfragegenerator benutzen. Er wird durch den Schalter mit dem Baustellensymbol geöffnet .

Führen Sie in der Liste auf der linken Seite einen Doppelklick auf LOCATIONS aus. Damit wird die Tabelle in das Designerfenster übernommen. Klicken Sie in die Tabelle mit der rechten Maustaste und fügen Sie per Kontextmenü eine Detailtabelle hinzu, z.B. DEPARTMENTS. Der Abfragegenerator verbindet beide Tabellen mit einem RIGHT OUTER JOIN, weil für die beteiligte Fremdschlüsselspalte in der Tabelle DEPARTMENTS Nullwerte zugelassen sind. Wählen Sie durch Auswahl der entsprechenden Checkboxen ein paar Spalten aus und prüfen Sie, ob die Checkbox „ANSI Joins“ markiert ist. Nachdem Sie den Dialog mit OK verlassen haben, finden Sie die erzeugte SQL-Abfrage im Editorfenster:

SELECT LOCATIONS.CITY, LOCATIONS.POSTAL_CODE, DEPARTMENTS.DEPARTMENT_ID,
  DEPARTMENTS.DEPARTMENT_NAME
FROM LOCATIONS
RIGHT OUTER JOIN DEPARTMENTS ON (
  LOCATIONS.LOCATION_ID = DEPARTMENTS.LOCATION_ID)

Kopieren in die Zwischenablage

Häufig benötigt man auch nur eine ganz gewöhnliche SQL-Abfrage auf eine einzige Tabelle, möchte aber nicht die Spaltennamen manuell eingeben. Dazu bietet Ihnen KeepTool eine weitere nützliche Option. Öffnen Sie in der Tabellenübersicht das Kontextmenü “Copy to clipboard …”

Nun können Sie zwischen verschiedenen Typen zu erzeugenden SQLs bzw. PL/SQL auswählen:

Die letzten beiden Menüpunkte erzeugen expdp and impdp Kommandos für ggf. auch mehere ausgewählte Tabellen:

expdp system@PORA12C1 tables=DEPARTMENTS,LOCATIONS directory=DATA_PUMP_DIR
dumpfile=pora12c1.dmp reuse_dumpfiles=y logfile=pora12c1.log

Show DDL

Ein weiterer nützlicher Befehl ist “Show DDL”.

Der Befehl nutzt die Logik unseres Reverse/DDL Werkzeugs und erzeugt DDL-Anweisungen für alle ausgewählten Tabellen.

Die beiden Befehle “Copy to clipboard” und “Show DDL” gibt es auch im Kontextmenü anderer Datenbankobjekte wie beispielsweise auf der Packages, Sequences oder Users-Seite.

Das Editorfenster

Wenn Sie dann im Editorfenster arbeiten, haben Sie weitere Möglichkeiten, um SQL zu erzeugen. Öffnen Sie den DB object browser und ziehen Sie einen Tabellennamen mit gedrückt gehaltener Maustaste in das Editorfenster. Bei manueller Eingabe des Tabellennamens führen Sie einen Doppelklick aus, um ihn zu selektieren. Nun öffnen Sie mit der rechten Maustaste das Menü “Selected object”.

Der Befehl gestattet es, den ausgewählten Tabellenname zu einem vollständigen SQL-Befehl auszubauen: 

Die erzeugte CURSOR FOR- Schleife beispielsweise sieht folgendermaßen aus:

begin
  for rec in (
    SELECT DEPARTMENT_ID, DEPARTMENT_NAME, MANAGER_ID, LOCATION_ID
    FROM DEPARTMENTS
  ) loop
  end loop;
end;

Alle Befehle sind auch über Tastaturkürzel erreichbar. So können Sie einen selektierten Tabellennamen durch Drücken von Strg+Umsch+S in eine SELECT-Anweisung umwandeln.

Nun können Sie noch kleinere Anpassungen am erzeugten SQL vornehmen und den Inhalt der Schleife ergänzen.

Zurück zur Übersicht