Neue Version des Betriebssystem-Packages: 1.0.0RC1
Heute habe ich eine neue Version meines Betriebssystem-Packages für PL/SQL veröffentlicht. Und langsam wird es ja auch mal Zeit, die "Nuller"-Versionen hinter sich zu lassen. Für diejenigen, die es noch nicht kennen: In diesem Paket habe ich Funktionen zusammengestellt, die den Zugriff auf das Dateisystem und die Shell vereinfachen. Zwar kann man mit UTL_FILE problemlos Dateien schreiben und lesen, FILE_PKG kann darüber hinaus jedoch Verzeichnisse auslesen - und zwar mit einem SELECT; wie bei einer Tabelle. OS_COMMAND erlaubt das Ausführen von Betriebssystem-Kommandos - und zwar mit vollem Zugriff auf stdin, stdout, stderr und auf den Return Code. Einfach mal ausprobieren ...
Und das ist im Release 1.0 RC1:
- Die Prozedur FILE_PKG.SET_FS_ENCODING erlaubt es, für Dateinamen mit einem anderen als dem Datenbankzeichensatz zu arbeiten. Das ist hilfreich bei Dateinamen mit Umlauten.
- Die EXEC-Prozeduren im Package OS_COMMAND können die Ausgaben von "stdout" und "stderr" nun getrennt voneinander verarbeiten.
Und schließlich habe ich intern ein wenig optimiert. Es ist manchmal immer wieder beeindruckend, was das Erzeugen von Java-Objekten kostet. Im konkreten Fall habe ich den Code so umgestellt, dass einige interne Objekte nicht mehr jedesmal neu, sondern nur einmal erstellt und danach wiederverwendet werden. Das Ergebnis kann sich sehen lassen. Hier ist ein Directory-Listing mit der vorherigen Version 0.9.2.
SQL> select count(*), sum(file_size) from table(file_pkg.get_file_list(file_pkg.get_file('/usr/bin'))) COUNT(*) SUM(FILE_SIZE)---------- -------------- 1287 769761561 Zeile wurde ausgewählt.Abgelaufen: 00:00:07.62Und hier die neue Version 1.0.0RC1 (gleiche Maschine, gleiche Datenbank, nur anderes Schema):
SQL> select count(*), sum(file_size) from table(file_pkg.get_file_list(file_pkg.get_file('/usr/bin'))) COUNT(*) SUM(FILE_SIZE)---------- -------------- 1287 769761561 Zeile wurde ausgewählt.Abgelaufen: 00:00:00.35Es lohnt sich also auf jeden Fall, die neue Version auszuprobieren. Über Feedback freue ich mich (wie immer).
January 31, 2011
|
Posted by Carsten Czarski
Categories: