Posts

Es werden Posts vom 2012 angezeigt.

SYSDATE vs. SYSTIMESTAMP

Zur Ermittlung der Systemzeit gibt es in Oracle PL_SQL folgende Möglichkeiten a) sysdate -> liefert die Systemzeit sekundengenau b) systimestamp -> liefert die Systemzeit mit sekundenBRUCHTEILEN (unter Unix mehr Nachkommastellen als unter Windows) Beispiele select to_char(sysdate,'dd.mm.yyyy hh24:mm:ss') A from dual; select to_char(sysdate,'dd.mm.yyyy hh24:mm:ss.ffffff') A from dual; => Fehler, siehe unten select to_char(systimestamp,'dd.mm.yyyy hh24:mm:ss.ffffff') B from dual; A                  ------------------- 21.12.2012 12:12:13 1 row selected. select to_char(sysdate,'dd.mm.yyyy hh24:mm:ss.ffffff') A from dual                        * Error at line 1 ORA-01821: date format not recognized B                                              ----------------------------------------------- 21.12.2012 12:12:14.975620975620975620         1 row selected. => sehr praktisch für Logging-Tabellen ;-) Hinweis: Zum Berechnen der Differen

Umgang mit virtuellen Spalten in Oracle 11g

Eine sehr gute Übersicht zum Umgang mit virtuellen Spalten in Oracle 11g stellt die Übersicht von Frank Schneede (Oracle) dar: http://www.oracle.com/webfolder/technetwork/de/community/dbadmin/tipps/virtual_columns/index.html Bsp.: Anlegen SQL> CREATE TABLE t_test 2 ( c_col1 INTEGER 3 , c_col2 INTEGER 4 , c_col3 INTEGER GENERATED ALWAYS AS (c_col1 + c_col2) VIRTUAL 5 ); Table created. Bsp: Virtuelle Spalten und PL/SQL-Funktionen Anlegen der PL-Funktion -> diese muss als deterministic deklariert sein SQL> CREATE FUNCTION f_summiere( 2 p1 IN INTEGER, 3 p2 IN INTEGER ) RETURN INTEGER DETERMINISTIC AS 4 BEGIN 5 RETURN p1 + p2; 6 END f_summiere; 7 / Function created. Nutzung der PL-Funktion als virtuelle Spalte SQL> ALTER TABLE t_test ADD 2 c_col5 GENERATED ALWAYS AS (f_summiere(c_col1,c_col2)); Table altered. Weitere Detail, Beispiele und Einschränkungen finden sich im besagten Artikel.

Oracle Dojo's zu verschiedenen Themen

Oracle hat zu den Themen * RAC * Big Data * Enterprise Manager 12c * DWH - Konzepte * Real Application Testing gute Kurzübersichten erstellt, die hier abgerufen werden können: http://www.oracle.com/webfolder/technetwork/de/community/dojo/index.html

APEX: change template for tabs from one level tabs to two level tabs

Bild
... weil doch ab und zu mal gebraucht wird und nicht wirklich eingängig ist: eine Anleitung zur Umstellung einer APEX-Anwendung von 1-Level-Tabs auf 2-Level-Tab (oder umgekehrt) und - gleichzeitig - Wie können Standard-Vorgaben für Anwendungen konfiguriert werden? Re: change template for tabs from one level tabs to two level tabs Posted: 04.01.2011 11:20   in response to: orton607     Hi, It depends on what else you may have done. The application will have a default page template set f

PL/SQL Unit testing

Datenbank unit testing best practise: Eine private Datenbank Instanz für jeden Developer. Beim Entwickeln von Tests für Datenbanken ist sehr wichtig, dass der Zustand von dem Datenbank Schema und Daten während der Entwicklung sich nicht verändert. Deswegen, in Projekten mit mehreren Entwicklern, sollte jeder Entwickler in eigener privater Instanz arbeiten, um Konflikten mit anderen Entwicklern oder Programmen zu vermeiden. Tests müssen unabhängig von Resultaten der anderen Tests sein. Am einfachsten kann man das erreichen, indem man vor jedem Test die Datenbank in initialen Zustand versetzt. Als mögliche Lösung kann man nach jedem Test die Datenbank Schema vollständig aufräumen, oder einfach keine Test Daten und Ergebnisse speichern (Rollback nach jedem Test). Eine Cleanup Funktion. Es ist oft nötig oder unvermeidlich (automatisches commit beim DDL Operationen in Oracle), dass während der Test-Ausführung, Daten in der Datenbank gespeichert werden. Man sollte für diese Fälle

Datenbankobjekte komprimieren

In einem aktuellen Artikel der DOAG gibt es einen guten Überblick über die Komprimierungsmöglichkeiten mit Oracle: Datenbankobjekte komprimieren, aber wie? Oracle Hybrid Columnar Compression, Advanced Compression und Basic Compression im Vergleich http://www.doag.org/home/aktuelle-news/article/datenbankobjekte-komprimieren-aber-wie-oracle-hybrid-columnar-compression-advanced-compression-un.html

spfile - Änderungen bei fehlerhaftem Parameter vornehmen

... da ist es nun doch mal passiert: Die Oracle-Datenbank (11.2) startet nicht mehr! Fehlermeldung: ORA-00119: invalid specification for system parameter ... D.h. offensichtlich ist ein init-Parameter falsch/fehlerhaft. Früher kein Problem: pfile finden, ändern - fertig! Inzwischen (seit Oracle 10? oder schon Version 9???) wird nicht mehr mit einem Textfile, sondern mit einem Binärfile (spfile.ora) gearbeitet - die Folge ist: Änderungen können erstmal nur noch z.B. per SQLPlus vorgenommen werden: ALTER SYSTEM SET =80 SCOPE=SPFILE; (oder SCOPE= MEMORY, oder SCOPE=BOTH) Das klappt aber nur, wenn die Datenbank verfügbar ist. Wenn bereits das Starten scheitert ... SQL> startup nomount ORA-00119: invalid specification for system parameter LOCAL_LISTENER ORA-00132: syntax error or unresolved network name 'LISTENER_ABC' ... hilft nur noch 1) aus dem spfile ein pfile zu erstellen.   create pfile='d:\app\fs1_pfile.ora' from spfile; 2) pfile manuell anzupas

Definition Behandlungsfall

Die Definition des Behandlungsfalles basiert auf den Regelungen des Bundesmantelvertrags Ärzte (siehe http://www.kbv.de/rechtsquellen/2310.html ) §1a Nr 28 BMV-Ä: Behandlungsfall: Die gesamte von derselben Arztpraxis (Nr. 18) innerhalb desselben Kalendervierteljahres an demselben Versicherten ambulant zu Lasten derselben Krankenkasse vorgenommene Behandlung gilt jeweils als Behandlungsfall; Behandlungsfälle beziehen sich auf die Rechtsbeziehungen zwischen Kassenärztlichen Vereinigungen und Krankenkassen im Abrech-nungswesen. Nr. 18 Arztpraxis : Tätigkeitsort des Vertragsarztes oder Vertragspsychotherapeuten an seiner Betriebsstätte, der auch die Nebenbetriebsstätten der Arztpraxis einschließt . Arztpraxis in diesem Sinne ist auch die Berufsausübungsgemeinschaft oder ein Medizinisches Versorgungszentrum. => d.h. HBSNR Falls mal wieder Unklarheiten aufkommen...

Immer wieder ORA-01722 (invalid number)

eine sehr gute Erläuterung zum Thema ORA-01722 findet sich hier:   http://oraculix.wordpress.com/2008/12/11/immer-wieder-ora-01722-invalid-number/ Hauptursache: Beim Vergleich alphanumerischer mit numerischen Werten führt Oracle ein implizites TO_NUMBER durch. Mögliche Gegenmaßnahme: Abfrage nicht als number (= 15), sondern als string (='15')

MERGE und ORA-01791

!DRAFT! ORA-01791: not a SELECTed expression und MERGE - Statement Quelle: http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:5229766627656 create table t_videos (title_id number primary key, title varchar2(20) not null, rented_date da te not null); insert into t_videos values (1, 'TITANIC', sysdate - 10); insert into t_videos values (2, 'TERMINATOR-II', sysdate - 12); insert into t_videos values (3, 'MEN IN BLACK', sysdate - 12); insert into t_videos values (4, 'TITANIC', sysdate - 10); insert into t_videos values (5, 'MEN IN BLACK', sysdate - 12); commit; select * from t_videos order by rented_date desc; select distinct title from t_videos order by rented_date desc; -> Fehler ORA-01791: not a SELECTed expression select title from (select title, row_number() over (partition by title order by rented_date desc) rno from t_videos order by rented_date desc) where rno = 1; -> gewünschte Reihenfolge ohne Fehler =>

OBIEE: Remove system wide default setting for column in OBIEE

Das zurücksetzen systemweit eingesellter Werte ist gar nicht so einfach - hier die Lösung:   Remove system wide default setting for column in OBIEE http://bintelligencegroup.wordpress.com/2010/12/27/remove-system-wide-default-setting/  Mit bestem Dank an Arno Tigges.

BI Publisher Report in APEX-Anwendung einbinden

Aufgabe: Aus einer APEX-Anwendung heraus soll ein sauber formatiertes Formular / eine Liste etc. abgerufen/gedruckt werden (also keine Browser-Druckfunktion). Lösungsansatz (unter APEX 4 mit BIP 10 oder 11): 1. in APEX:   neuen Bericht unter shared components / Reports erstellen das SQL für den Report einfügen (ggfs. BIND-Variablen definieren - per :p2_var im SQL) Schema download speichern -> dient der Erstellung des RTF-Templates für den eigentlichen Report 2. Word mit BIP-Add-In: leeres RTF-Dokument erstellen per BIP-Add-In das oben erstellte XML-Schema laden Dokument gestalten, Felder an gewünschter Stelle einfügen (normale Bearbeitung wie im BIP) Dokument als RTF speichern 3. in APEX: neues Layout unter shared components / Layouts erstellen Namen vergeben und RTF hochladen unter shared components / reports dem Report das neue Layout zuweisen LINK des Reports kopieren auf die gewünschte Seite in der APEX-Anwendung wechseln hier neuen Button mit der URL

Blogger.com nur noch mit Chrome nutzbar?

Bild
 Geändert am 12.04.12 Diese Meldung ist leider das Ergebnis der Anpassungen für die OBIEE (siehe  http://frankschmidt.blogspot.de/2012/02/obiee-firefox-10-obiee-11115.html) Vielleicht sollte ORACLE mal aktiv werden!

OBIEE - Security mit AD und DB-Tabellen

OBIEE 11g Security Week : Connecting to Active Directory, and Obtaining Group Membership from Database Tables Anleitung zur Einrichtung der OBIEE-Berechtigungen mit AD-Konten für die Authentifizierung und DB-Tabellen für die Authorisierung Quelle: http://www.rittmanmead.com/2012/03/obiee-11g-security-week-connecting-to-active-directory-and-obtaining-group-membership-from-database-tables/

PPT - Präsentation mit 2 Monitoren

Für die Präsentation mit zwei Monitoren bietet PowerPoint (2003) die Möglichkeit einer sogenannten Präsentationsansicht. Dabei sieht der Vortragende auf "seinem" Schirm neben einer Folienübersicht und der aktuellen Folie zusätzlich noch die Foliennotizen und die Vortragszeit. Das Publikum sieht immer nur die offiziellen Folien. Wie kommt man dran: Bildschrimpräsentation - Bildschrimpräsentation einrichten - "Mehrere Bildschirme": Präsentationsansicht wählen Ist natürlich Geschmacksfrage - ich find's ganz nett :-)

APEX Stammtisch am 13.03.2012 um 19.30Uhr in München

grade erst gefunden: Carsten Czarski organisiert einen APEX-Stammtisch im Augustiner Restaurant: Neuhauserstr. 27 80331 München http://augustiner-restaurant.com/ Mehr Details unter http://sql-plsql-de.blogspot.com/2012/03/apex-und-plsql-entwicklerstammtisch-in.html Also: Unbedingt dabei sein!

OLTP vs. DWH

Tom Kyte im Oracle Mag 03/04 2012 S. 11/12 (sinngemäß und verkürzt): Szenario: Abfrage von 1% der Daten einer Tabelle OLTP: Index bauen und benutzen DWH: Full Table Scan Erklärung: 1% Zeilen einer Tabelle mit 100 Mio Zeilen sind 1 Mio Zeilen => 1 Mio single-block Operationen gegen die Tabelle => dauert ca. 1,5h; Full table scan geht wesentlich schneller..

Adobe veröffentlicht Lightroom 4

Die neue Version ist da! Zu Preisen von 129€ bzw. 74€ für das Update gibt es nun u.a. Geotagging und Softproof. siehe auch hier: http://www.heise.de/newsticker/meldung/Adobe-veroeffentlicht-Lightroom-4-1464280.html

OBIEE 11.1.1.6 Erläuterungen

Zur neuen OBIEE Version 11.1.1.6 gibt es interessante Erläuterungen von Mark Rittmann: http://www.rittmanmead.com/2012/03/obiee-11-1-1-6-new-dashboard-analysis-and-reporting-features/

APEX 4.1.1 verfügbar

Wie Joel Kammann in seinem Blog informiert ist APEX 4.1.1 seit 21.2. verfügbar: http://joelkallman.blogspot.com/2012/02/oracle-application-express-411-now.html Download unter  http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html

APEX + OBIEE: APEX in OBIEE einbinden

ungetestet: http://www.oracle.com/webfolder/technetwork/de/community/apex/tipps/biee-apex/index.html

OBIEE: Version 11.1.1.6 ist verfügbar

unter http://www.oracle.com/technetwork/middleware/bi-enterprise-edition/downloads/biee-111150-393613.html steht nun die Version 11.1.1.6 zur Verfügung.

Magic Quadrant for Business Intelligence Platforms 2012

Der 2012er Gartner Magic Quadrant für BI-Plattformen ist veröffentlicht: http://www.gartner.com/technology/reprints.do?id=1-1998BPN&ct=120209&st=sb

myApp for Android

250+ Solitär Barcode Scanner, barcoo GPS Test Inkpad Wifi Analyzer DB Navigator Blogger ...

OBIEE: Firefox 10 + obiee 11.1.1.5

Firefox 10 + obiee 11.1.1.5 Die OBIEE-Suite will nicht mit dem aktuellen FF-Browser 10 - bis es von Oracle einen wirklichen FIX dazu gibt, hier ein Work-around: 1. type " about:config " into an address bar 2. right click anywhere and choose New / String 3. name it " general.useragent.override " 4. put the value " Mozilla/5.0 (Windows; Windows NT 6.1; rv:10.0)Gecko/20100101 Firefox/9.0 " 5. refresh OBIEE login screen unbekannte Quelle Nachtrag vom 12.04.12: Haken an der Sache : Diverse andere Seiten funktionieren mit dieser Einstellung nicht mehr - Bsp. siehe http://frankschmidt.blogspot.de/2012/04/bloggercom-nur-noch-mit-chrome-nutzbar.html

BI Publisher Session-timeout

aus einer Mail zum Thema BIP Session-timeout einstellen: dies ist tatsächlich eine Einstellung, die für die Applikation xmlpserver im Appl. Server vorgenommen werden muss. Ich habe das damals beim OC4J in der web.xml vorgenommen (Parameter session-timeout). http://blogs.oracle.com/xmlpublisher/entry/session_timeouts Im WLS bin ich mir da nicht so sicher. Ich habe das über die Console versucht, hatte aber keinen Erfolg. Eine mögliche Erklärung dafür und eine Anleitung liefert wieder der Blog: http://blogs.oracle.com/xmlpublisher/entry/time_for_a_timeout Ist etwas umständlich, aber nachvollziehbar.

BIP: Logdaten in Tabelle umleiten

How to Visualize your Audit Data with BI Publisher? – Setup BI Publisher Usage Tracking http://shivabizint.wordpress.com/2011/11/16/how-to-visualize-your-audit-data-with-bi-publisher-setup-bi-publisher-usage-tracking/

APEX: Tabellen manuell - Tab-Formulare manuell erstellen

Im aktuellen Tipp der deutschsprachigen APEX-Community wird erläutert, wie man im Einzelfall manuell tabellarische Formulare erstellen kann: http://www.oracle.com/webfolder/technetwork/de/community/apex/tipps/tipps-tricks-manuell-tabform/index.html Grundsätzlich gibt aber: spätestens ab Version 4/4.1 sind die Standard Tab-Formulare sinnvoll einsetzbar. Das manuelle Nachbauen sollte auf Spezialfälle beschränkt bleiben.

Darstellung Plattenplatz

Bild
Scanner 2.10 ist ein feines kleines Tool zur übersichtlichen Darstellung der Plattenbelegung unter Windows. Durch das sunburst chart wird sehr schnell deutlich, welche Verzeichnisse den meisten Platz verbrauchen und wo das Aufräumen beginnen sollte. Quelle: http://www.steffengerlach.de/freeware/ bzw. über das heise-Softwareverzeichnis http://www.heise.de/software/download/scanner/7159

Mail direkt aus der Oracle-DB versenden (utp_smtp)

Da es immerwieder nachgefragt wird, hier auf die Schnelle, wie aus der DB Mails versendet werden können. Wichtig: Das Beispiel versucht Umlaute im Mailbody und im angehängten File zu erhalten (daher der Umweg über quoted_printable). -- Author : SCHMIFA -- Created : 06.07.2010 13:51:36 -- Purpose : Test-Mailversand procedure Testmail -- Purpose : Test-Mailversand is v_ErrCode varchar2(100); -- Fehlercode v_ErrTxt varchar2(1500); -- Fehlermeldung c_Modul varchar2(100) := 'Testmail'; -- Mail-Variablen v_From VARCHAR2(80) := 'oracle-server@rz.de'; v_Recipient VARCHAR2(80) := 'frank.schmidt@firma.de'; v_Subject VARCHAR2(80); v_Mail_Host VARCHAR2(30) := localhost; -- SMPTP Host (local machine) v_Mail_Conn utl_smtp.Connection; v_filename varchar2(50 byte) := 'mail_anhang.txt'; -- Sub-Proc für verkürzte Schreibweise - s1 = Send - für alle INHALTS-Zeilen -- Umwandlung in quoted_printable, um Umlaute und