SQLcl - das neue SQL*Plus: Eine Anleitung zum Ausprobieren

Werbung
Whitepaper
SQLcl – das neue SQL*Plus
Eine Anleitung zum Ausprobieren
SQLcl – das neue SQL*Plus
Eine Anleitung zum Ausprobieren
Autor:
Michael Schulze
für OPITZ CONSULTING
Haben Sie Fragen
zu diesem Thema?
Dann sprechen Sie mich gerne an!
Michael Schulze,
OPITZ CONSULTING Senior Consultant
[email protected]
Inhaltsübersicht
Vorwort
Download, Installation und erster Test
Interessante Features
Extrahieren der DDL Statements & Objekte neu anlegen
History-Funktionalität und Ersetzen der Befehlszeile
Bessere Darstellung der Objektinhalte
Verwendung von Farben in SQL-Statements
Import-/Exportfunktionalität
Verwendung von Aliases
Insert Statements generieren
Mehrere DB-Connects mit Bridge Command verbinden
Change Directory
Formatieren von SQL-Statements
Tabellenliste
Objektinformationen mit Abhängigkeiten anzeigen
Repeats, Wiederholung von Statements
Apex Informationen anzeigen
Startumgebungen setzen für SQLcl
Informationen zu Oracle Fehlermeldungen anzeigen
Eastereggs
Quellen
Über OPITZ CONSULTING
Vorwort
In diesem Whitepaper stelle ich Ihnen das Tool SQLcl als sinnvolle Ergänzung und Alternative zu SQL*Plus vor. SQL*Plus ist in die Jahre gekommen,
für Neuerungen ist es also an der Zeit: SQLcl kommt mit frischem Wind
daher. Entstanden im Developer Projekt, ist das Command Line Tool mit
vielen sinnvollen Features ausgestattet, von denen ich einige im im Folgenden näher beleuchten möchte.
Die aktuelle Version befindet sich zwar noch im Status "Early Adopter",
jedoch sind die integrierten Features schon gut zu nutzen und erleichtern
die Arbeit für Anwender, die oft mit SQL*Plus arbeiten, enorm. SQLcl wird
"out of the box" installiert, lediglich eine installierte Java-Runtime-Version
ist Voraussetzung.
Viel Spaß beim Ausprobieren!
Texte und Abbildungen wurden mit größter Sorgfalt erarbeitet. OPITZ CONSULTING kann jedoch für eventuell verbleibende fehlerhafte Angaben und
deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Das Recht an dargestellten Verfahren, Showcases, Implementierungsbeispielen und Sourcecodes liegt ausschließlich bei OPITZ CONSULTING.
© OPITZ CONSULTING Deutschland GmbH 2015
Whitepaper: SQL—das neue SQL*Plus
Seite 2
Download, Installation
und erster Test
Extrahieren der DDL Statements &
Objekte neu anlegen
Unter folgender URL kann das Zipfile (11M) heruntergeladen und anschließend in einen Pfad extrahiert werden: http://download.oracle.com/otn/
java/sqldeveloper/sqlcl-4.2.0.15.177.0246-no-jre.zip
Über das Package: DBMS_METADATA können DDL-Statements extrahiert
werden, diese Funktionalität wurde auch in SQLcl integriert. Die DDL Statements können angezeigt (STDOUT) oder in eine Datei gespeichert werden:
Im Installationsverzeichnis (hier: /root/sqlcl) befindet sich eine Datei: "sql",
diese ist zu starten. Analog funktioniert das im Windows Umfeld, hier wäre
das Startfile: sql.bat. Das wars eigentlich schon, jetzt kann das Tool genutzt
werden (./sql aufufen).
ddl test
ddl test /tmp/cr_test.sql
Aufgrund der Java-JDBC-Funktionaliät von SQLcl ist eine Oracle Net Umgebung (tnsnames.ora ua.) nicht erforderlich, TNS steht aber zusammen
mit weiteren Möglichkeiten (wie SSH, LDAP u. a.) zusätzlich zur Verfügung.
Anmelden kann man sich nun mit der EZConnect Syntax
(host:port/sid), im Beispiel hier an einer XE11g DB interaktiv:
root/sqlcl/bin/sql
Username: test
Password: test
Database: localhost:1521/XE
Es können auch DDL Statements für neue Datenbank-Objekte erstellt werden, hier wird die Tabelle „test2“ aus der Vorlage: Tabelle „test1“ generiert
(Create Table as Select):
Oder mit Parameterübergabe:
ctas test test1
/root/sqlcl/bin/sql test/test@localhost:1521/
XE
Interessante Features
Im Weiteren sollen einige Features bzgl. SQLcl im praktischen Betrieb vorgestellt werden, die den Mehrwert der neuen Anwendung unterstreichen.
Dazu wurden zunächst einige Testdaten generiert:
drop table test;
create table test (id number, text varchar2
(100));
alter table test add constraint pk_test primary key (id);
comment on column test.id is 'id';
comment on column test.text is 'Textfeld';
insert into test values(1,'eins');
insert into test values(2,'zwei');
insert into test values(3,'drei');
commit;
© OPITZ CONSULTING Deutschland GmbH 2015
Whitepaper: SQLcl — das neue SQL*Plus
Seite 3
History-Funktionalität und
Ersetzen der Befehlszeile
Verwendung von Farben
in SQL-Statements
SQLcl besitzt eine History-Funktion, per default werden die letzten 100 SQL In folgendem Beispiel (Auslastung von Tablespaces) soll die Möglichkeit der
Statements aufgehoben. Entweder kann alles angezeigt oder eine
Verwendung von Farben demonstriert werden:
bestimmte Zeile aus der History verwendet werden (hier Zeile:100).
Diese Zeile kann mit EDIT auch in den Default-Editor geladen werden.
set sqlformat ansiconsole
with ts_details as
Mit „l“ wird die erneut angezeigt und mit „/“ erneut ausgeführt. Desweite(
ren steht auch eine Befehlszeilenersetzung (analog bash) zur Verfügung,
dazu ist „TAB“ zu benutzen.
select rpad(tablespace_name,30, ' ')||'
'||lpad(floor(used_percent), 3, ' ')
history
as ts_line,
history 100
used_percent
from dba_tablespace_usage_metrics
l
/
)
select
case
when used_percent > 70 then
'@|bg_red '||ts_line||'|@'
when used_percent < 1 then
'@|bg_green '||ts_line||'|@'
Jeder der bereits mit SQL*Plus gearbeitet hat, kennt das Problem der Darelse '@|bg_yellow '||ts_line||'|@'
stellung von Inhalten (zb. Tabellen), die erst durch Setzen von entspreend as ts_usage_percentage
chenden Variablen etwas besser aussieht. Mit SQLcl ist es nun möglich
from ts_details
/
set sqlformat ansiconsole
select * from test;
Bessere Darstellung der Objektinhalte
Tabelleninhalte übersichtlicher darzustellen. Im folgenden Beispiel soll
das demonstriert werden:
© OPITZ CONSULTING Deutschland GmbH 2015
Whitepaper: SQLcl — das neue SQL*Plus
Seite 4
Import-/Exportfunktionalität
XML Export
Mit dem Befehl: „load“ ist es möglich, Daten im CSV-Format in die Datenbank zu bringen. Vorher muss jedoch das entsprechende Format gesetzt
werden. Ebenso kann man Daten in verschiedenen Formaten (CSV, JSON,
XML, HTML) exportieren.
set sqlformat xml
select * from test;
Import
Lädt das CSV-File: test1.csv in die Tabelle „test1“ :
load test1.csv test1
CSV Export
set sqlformat csv
select * from test;
HTML Export
set sqlformat html
select * from test;
JSON Export
set sqlformat json
select * from test;
© OPITZ CONSULTING Deutschland GmbH 2015
Whitepaper: SQLcl — das neue SQL*Plus
Seite 5
Mehrere DB-Connects
mit Bridge Command verbinden
Verwendung von Aliases
Mit der Verwendung von Aliases kann aufwändige Syntax einem Schlüsselwort zugewiesen werden. Das erleichtert den Umgang mit häufig genutzten, komplexen Statements. Ein Beispiel:
format file /tmp/1.sql /tmp/2.sql
alias inst=select instance_name, version,
status from v$instance
set sqlformat ansiconsole
inst
Mit dem Befehl: „BRIDGE“ können andere Datenquellen angesprochen
werden. Im folgenden Beispiel wird eine Tabelle aus einer anderen Datenquelle erstellt:
bridge hr_tabs as "jdbc:oracle:thin:hr/
hr@localhost:1521/XE"(select table_name from
user_tables);
Insert Statements generieren
Eine weitere sinnvolle Funktion erlaubt es, Insert-Statements aus Tabelleninhalten zu generieren. Hierzu muss vorher das Format „insert“ gesetzt
werden.
set sqlformat insert
select 1,2,3,4,5 from dual;
REM INSERTING into dual
SET DEFINE OFF;
Insert into "dual" ("1","2","3","4","5")
values ('1','2','3','4','5');
Change Directory
In SQL*Plus war der Wechsel des Verzeichnisses nur über das HostCommand möglich, in SQLcl gibt es ein entsprechendes Kommando „cd“.
Formatieren von SQL-Statements
Mit Hilfe des Befehls: „format“ kann ein SQL-File strukturiert dargestellt
(formatiert) werden, wenn noch nicht geschehen. Die Datei: „1.sql“ in diesem Beispiel enthält unstrukturierte Statements, in „2.sql“ wird dann alles
formatiert geschrieben:
format file /tmp/1.sql /tmp/2.sql
© OPITZ CONSULTING Deutschland GmbH 2015
Whitepaper: SQLcl — das neue SQL*Plus
Seite 6
Tabellenliste
Repeat, Wiederholung von
Statements
Mit dem Befehl „TABLES“ können Tabellen gelistet werden:
Statements zu wiederholen, kann z. B. für eine Session-Überwachung
sinnvoll sein. Das Beispiel zeigt den Repeat eines aktuellen Statements, das
im Buffer steht. Es wird 10 Mal wiederholt, dazwischen liegt eine Pause
von 2 Sekunden.
SELECT SID, Serial#, UserName, Status, SchemaName, Logon_Time FROM V$Session WHERE Status='ACTIVE' AND UserName IS NOT NULL
Objektinformationen mit
Abhängigkeiten anzeigen
Repeat 5 1
Der Befehl „INFO“ ist sozusagen ein erweitertes „DESC“. Es werden neben
Objektinformationen auch Comments, Indexes und Keys angezeigt. Primärschlüssel werden hierbei mit einem „*“ hervorgehoben. Mit „INFO+“ können
Mit dem Befehl „apex“ können Informationen zu APEX-Anwendungen
noch detailliertere Informationen angezeigt werden.
angezeigt werden.
info test
Apex Informationen anzeigen
Startumgebung setzen für SQLcl
Es kann eine Datei „login.sql“ angelegt werden, diese wird bei SQLcl Start
aufgerufen und abgearbeitet. Hier können Formatanweisungen und Aliases
vereinbart werden, die dann über die gesamte SQLcl Sitzung gelten.
set sqlformat ansiconsole
alias time=select to_char(sysdate, 'HH24:MI')
as "time" from dual;
info+ test
Informationen zu Oracle
Fehlermeldungen anzeigen
Mit dem Befehl „OERR“ können Oracle Fehlermeldungen analysiert werden.
Im Beispiel ist der Fehler: ORA-500 dargestellt.
oerr ora 500
oerr ora 500
© OPITZ CONSULTING Deutschland GmbH 2015
Whitepaper: SQLcl — das neue SQL*Plus
Seite 7
Eastereggs
show sqldev
show sqldev2
Quellen
■
■
■
■
http://krisrice.blogspot.co.uk
http://barrymcgillin.blogspot.co.uk
https://mikesmithers.wordpress.com
http://de.slideshare.net/hillbillyToad/sqlcl-overview-a-new-commandline-interface-for-oracle-database
© OPITZ CONSULTING Deutschland GmbH 2015
Whitepaper: SQLcl — das neue SQL*Plus
Seite 8
Über OPITZ CONSULTING
■
Training und Coaching:
Das Oracle University Schulungszentrum von
OPITZ CONSULTING bietet ein umfangreiches
Schulungsprogramm in den Bereichen Oracle,
SOA, Java und Business Intelligence. Die
Trainings werden flexibel auf Kunden oder Projekte zugeschnitten und auf Wunsch auch inhouse durchgeführt. Die
Trainer kommen direkt aus der Praxis und verfügen neben fundiertem
theoretischem Wissen über langjährige Projekterfahrung.
■
Trends:
Gemeinsam mit dem Kunden konzipieren und
implementieren die IT-Experten innovative und
differenzierende Lösungen. Hierzu beschäftigen
sie sich permanent mit neuen Trends und evaluieren diese Hype-Themen hinsichtlich der möglichen Nutzung in den Kundenprojekten.
OPITZ CONSULTING trägt als führender Projektspezialist für ganzheitliche
IT-Lösungen zur Wertsteigerung von Unternehmen bei und bringt IT und
Business in Einklang. Mit OPITZ CONSULTING als zuverlässigem Partner
können sich die Kunden auf ihr Kerngeschäft konzentrieren und ihre
Wettbewerbsvorteile nachhaltig absichern und ausbauen.
OPITZ CONSULTING wurde 1990 gegründet und beschäftigt heute an neun
Standorten mehr als 400 Mitarbeiter. Zum Kundenkreis zählen
¾ der DAX30-Unternehmen sowie branchenübergreifend mehr als
600 bedeutende Mittelstandsunternehmen.
Portfolio
Das Portfolio von OPITZ CONSULTING umfasst die folgenden Leistungsschwerpunkte:
■
IT-Beratung:
Die IT-Experten unterstützen ihre Kunden dabei,
die organisatorischen Grundlagen für eine verbesserte Wertschöpfung durch die Informationstechnologie zu schaffen. Transparente und
effektive Strukturen im IT-Management sind hier
grundlegend. Mit positiven Konsequenzen für das
gesamte Unternehmen: bessere Kontrolle über aktuelle IT-Kosten,
effektiverer Ressourceneinsatz, stabilere Planungsbasis für die Zukunft
und zufriedene Anwender.
■
Business-Lösungen:
In enger Zusammenarbeit mit seinen Kunden
entwickelt unser Projekthaus innovative, differenzierende und individuelle Business-Lösungen.
Hierbei unterstützen die Spezialisten den gesamten Plan-Build-Run-Zyklus. Auf Wunsch übernehmen sie die Verantwortung für Wartung und Weiterentwicklung der
Lösungen über den gesamten Lebenszyklus, mittels Application
Lifecycle Management, kurz: OC|ALM®.
■
Managed Services:
Unsere Teams für Managed Services Application
(OC|MSA®) und Managed Services Infrastructure
(OC|MSI®) kümmern sich rund um die Uhr, remote oder vor Ort um die Applikationen und Systeme ihrer Kunden. Dabei übernehmen sie die Wartung, die Weiterentwicklung und die Modernisierung von Applikationen, sowie die Administration, die Wartung und
den Betrieb von IT-Infrastrukturen. Proaktiv weisen Sie die Kunden auf
mögliche Risiken und Engpässe hin.
© OPITZ CONSULTING Deutschland GmbH 2015
Weitere Infos zu unseren Leistungsfeldern finden
Sie auf unserer Homepage: www.opitzconsulting.com/portfolio
Whitepaper: SQLcl — das neue SQL*Plus
Seite 9
Folgen Sie uns:
youtube.com/opitzconsulting
@OC_WIRE
slideshare.net/opitzconsulting
xing.com/net/opitzconsulting
Weitere Infos auf
www.opitz-consulting.com
Herunterladen