Oracle Developer Monthly Datenbank-Update für Anwendungsentwickler Februar 2016

Ähnliche Dokumente
Datum, Uhrzeit, Kalender & Co und Application Express

Eine kurze Geschichte der Oracle Zeit

Eine kurze Geschichte der Zeit

Die Datumsfunktion liefert die Informationen zu Datum und Uhrzeit oder diese Werte manipuliert.

SQL Intensivpraktikum SS 2008

Das Leben der Anderen

Neue Features Oracle Database 12.2 Wann denn endlich?

Geodaten und Karten in APEX

APEX: from past to present

Flashback mal sieben. DOAG Konferenz , Nürnberg. Klaus Reimers

<Insert Picture Here> Oracle Spatial Die Plattform für Geo-Business-Intelligence. Carsten Czarski ORACLE Deutschland B.V. & Co KG

Application Express (APEX) Carsten Czarski Business Unit Database. ORACLE Deutschland B.V. & Co KG

... Der Einsatz von National Language Support (NLS)

Andrea Held. Motivation ILM: Definition und Strategien Lösungen für Oracle Datenbanken. Empfehlungen

Dr. Gérard Schaller Gesammelte Erfahrungen der Berater der Trivadis AG

Moderne Anwendungen und relationale Datenbanken? Natürlich!

Fuzzy-Suche in Application Express

Vorlesung Datenbankmanagementsysteme

Übung PL/SQL Trigger Lösungen

Carsten Czarski Oracle Deutschland B.V. & Co KG. Keine Angst vor SQL Injection oder Wie man Datenbankzugriffe sicher implementiert

Ein APEX für alle und alle für APEX! Niels de Bruijn, Fachbereichsleiter APEX , DOAG DB Konferenz

NoSQL mit Postgres 15. Juni 2015

Oracle Database 12c: Introduction to SQL (ORA-D80174)

apex.meinefirma.de Carsten Czarski ORACLE Deutschland B.V. & Co KG APEX Hosting im eigenen Unternehmen Carsten.Czarski@oracle.com

SQL-Vertiefung. VU Datenbanksysteme. Reinhard Pichler

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Extracting Business Rules from PL/SQL-Code

Datenbank-Services für Entwickler aus der Oracle Cloud: Database Service, Schema Service & mehr

Das nächste Duet(t): APEX und SAP DOAG Konferenz Niels de Bruijn Nürnberg,

functions Two Types of SQL Functions

Mehr Ergebnisse: Linguistische Funktionen und Ähnlichkeitssuche mit SQL. Carsten Czarski ORACLE Deutschland B.V. & Co KG München

ORACLE und IBM DB2 Datentypen

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Nachrichtendefinition Erinnerungen per

DOAG Konferenz Was Sie bei modernen Datenbank-Systemen anders machen müssen!

Oracle Flashback DOAG K onferenz Nürnberg 2009 Marco P atzwahl Patzwahl

Datenbanksysteme Kapitel 7: SQL Vorlesung vom Oliver Vornberger. Institut für Informatik Universität Osnabrück

SQL-Vertiefung. VL Datenbanksysteme. Ingo Feinerer

ORACLE Application Express (APEX) und Workflows. Copyright Apps Associates LLC. 1

Graphen in Apex von Thomas Hernando.

Vergessene (?) SQL- und PL/SQL- Funktionen

SQL Developer Unit Tests

<Insert Picture Here> Mehr Ergebnisse: Linguistische und Ähnlichkeitssuche mit SQL Carsten Czarski ORACLE Deutschland B.V. & Co KG

APEX 5.0 als wertvolle Ergänzung einer SharePoint-Umgebung. Alexej Schneider DOAG 2015

Datenbanksysteme 2 Fachbereich Angewandte Informatik WS 11/12 Dipl.-Inf. Christian Pape. 2. Übung

SQL-Anweisungen. SELECT (SQL Data Query Language)

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

<Insert Picture Here> Security-Basics. Privilegien, Rollen, SQL und PL/SQL - inkl. 12c-Update. Carsten Czarski, ORACLE Deutschland B.V. Co.

Datumswerte und Zeitstempel

THEMA: SAS DATUMSWERTE: ERSTELLEN EIGENER DATUMSFORMATE LEICHT GEMACHT" EVA-MARIA KEGELMANN

SQL-Vertiefung. VU Datenbanksysteme. Reinhard Pichler

Oracle BI Publisher - PDF und einiges mehr

SQL-Befehlsliste. Vereinbarung über die Schreibweise

NLS_LANG und Datenbank CHARACTERSET. weitverbreitete Missverständnisse und ihre Klärung

Geodaten mal ohne Karte

Nachrichtendefinition. Erinnerungen per

Quo vadis, DBA? Johannes Ahrends & Markus Flechtner

DOAG Demo Kino: Advisors, Monitoring Werkzeuge in der Datenbank Ulrike Schwinn Business Unit Database Oracle Deutschland B.V.

Beschreibung der Oracle SQL Datentypen. Aufbau der Oracle-SELECT-Befehle. Vereinfachte Syntax: Beschreibung der Einzelkomponenten:

Neuerungen in Marco Patzwahl MuniQSoft GmbH Unterhaching

DOAG Oracle Jahrbuch 2007/2008 Praxisleitfaden und Partnerkatalog für die Oracle-Community Herausgegeben von DOAG e.v.

<Insert Picture Here> RMAN Full Backups zum Preis von inkrementellen Backups

Oracle APEX 3.2. Peter Raganitsch. Einführung und neue Features

Oracle Database: Introduction to SQL

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz

Hilfe, ich verstehe meine APEX Seite nicht mehr! DOAG Development Konferenz, Düsseldorf

Mission. TARGIT macht es einfach und bezahlbar für Organisationen datengetrieben zu werden

Archive / Backup System für OpenVMS

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

Beispiele zur Verwendung der Konvertierungsfunktionen

Automatisierte Datenmigration mit dynamischen SQL

ETL Monitoring & Tuning durch Auswertung der OWB Laufzeit-Metadaten. Referent: Lutz Bauer, Leiter CC Data Integration, MT AG

Oracle GoldenGate Die Replikation beginnt mit Initial-Load! DOAG Konferenz Nürnberg 16. November 2011

Oracle Database 11g: Professioneller Einstieg in SQL Release 2 (Deutsch)

Funktion definieren Gibt Summe der Gehälter zurück. Aufruf in einem SQL-Statement

Stichwortverzeichnis. Iron Werther. Business Intelligence

Datenbankreplikation in der Standard Edition. Markus Jendrossek

PL/SQL. Deklaration von Variablen. Inhalt. PL/SQL Block Struktur. PL/SQL Block Struktur

+++ Bitte nutzen Sie die integrierte Audio-Funktion von WebEx (Menü Audio -> Integrated Voice Conference -> Start auswählen), um uns zu hören!!!

Fortgeschrittene SQL-Techniken für APEX-Formulare und Reports

Hochschule Karlsruhe Technik und Wirtschaft Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

PostgreSQL in großen Installationen

SQL-Befehlsliste. Vereinbarung über die Schreibweise

Trennen von Regeln und PL/SQL-Code

Zugriff aus Oracle via Proc SQL: Performanceprobleme

APEX und Drucken Die Schöne und das Biest! Seite 1 von 61

Forms auf Tablets. Vision oder Realität?

Professioneller Einstieg in Oracle Database 11g SQL

Historisierung und Versionierung mit Oracle Workspace Manager im Einsatz bei der Deutschen Bahn AG

IBM Informix Newsletter Ausgabe August 2008

Unsere Vorträge auf der DOAG 2015

PL/SQL Unit Tests mit SQL Developer

Agile Softwareentwicklung mit APEX (4.0)

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Inhalt. Datentypen und einfache Funktionen in SQL. Datentypen (2) Datentypen (1) 1. Klassische SQL-Datentypen. 2. Weitere SQL-Datentypen

Datenbankstatistiken im Griff mit DBMS_STATS. DOAG 2012 Konferenz + Ausstellung Nürnberg 21. November 2012

OXO³ technische Aspekte der Oracle EMEA internen BI Implementierung

McAfee Database Security. DOAG Konferenz Franz Hüll Senior Security Consultant. November 20, 2012

NoSQL-Datenbanken und Hadoop im Zusammenspiel mit dem Data Warehouse

Transkript:

Oracle Developer Monthly Datenbank-Update für Anwendungsentwickler Februar 2016 Carsten Czarski Business Unit Database Oracle Deutschland B.V. & Co KG

http://tinyurl.com/modernappdev12c http://tinyurl.com/oracloudnow

http://tinyurl.com/modernappdev12c http://tinyurl.com/modernappdev

Wichtige Termine 10. März 15. März 15. März 16. März 17. März 20. April 26. April Mai 2016 Juni 2016 APEX Meetup in Hamburg mit Marc Sewtz Oracle Data Warehouse Konferenz 2016 in Mainz 2 Tage "APEX Startup" Hands-On Workshop bei der MT AG in Ratingen "APEX Startup" Hands-On Workshop bei Oracle in Dreieich APEX Meetup in München mit Marc Sewtz Oracle IT Transformation Summit München DOAG APEX Connect 2016 in Berlin DOAG 2016 Datenbank in Düsseldorf DOAG 2016 BI in Bonn

Digital Transformation IT Summit 20. April 2016 München http://digitaltransformationit.oracle.com/munich/de/

APEX Competition: Wer baut das coolste Dashboard? http://apexcompetition.org

APEX Competition: Wer baut das coolste Dashboard? Erstellt ein "Dashboard" mit APEX auf vorgegebenen Daten APEX-Diagramme, Open Source, D3.js, Reports und mehr Gewinner werden auf der APEX Connect 2016 in Berlin geehrt

Aktuelle Software Release und Patchstände Oracle Datenbank 12.1.0.2 SQL Developer 4.1.3 SQLcl 4.2.0.16 (18. Februar 2016) SQL Developer Data Modeler 4.1.3* node-oracledb 1.6* Application Express 5.0.3* Oracle Rest Data Services 3.0.3* Oracle NoSQL DB 12.1.3.5.2 * Bug Fix Release

Datumsverarbeitung in der Oracle-Datenbank Datentypen DATE, TIMESTAMP, TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE Datumsformate NLS-Formatmasken, NLS-Datumssprache, Datums-Literale Datumsarithmetik Arbeiten mit Dezimalzahlen oder mit INTERVAL-Datentypen

Datumsverarbeitung Kodierung eines DATE SQL> select sysdate, dump(sysdate) dmp from dual; SYSDATE DMP --------------------------- ---------------------------------------- 22.02.2016 09:50:36 Typ=13 Len=8: 224,7,2,22,9,50,36,0 1 rows selected. E0,07 Hex 07E0 2016

Datumsverarbeitung TIMESTAMP (ohne Zeitzone) SQL> select systimestamp, dump(systimestamp) dmp from dual SYSTIMESTAMP DMP ---------------------------------- -------------------------------------------------------------------- 22.02.16 09:54:35,389132000 Typ=188 Len=20: 224,7,2,22,8,54,35,0,224,174,49,23,0,0,3,0,0,0,0,0 1 rows selected. TIMESTAMP WITH TIME ZONE SQL> select systimestamp, dump(systimestamp) dmp from dual SYSTIMESTAMP DMP ---------------------------------- -------------------------------------------------------------------- 22.02.16 09:54:35,389132000 +01:00 Typ=188 Len=20: 224,7,2,22,8,54,35,0,224,174,49,23,1,0,5,0,0,0,0,0 1 rows selected.

Datumsformate Default Datumsformat richtet sich nach NLS-Session Einstellung SQL> select * from nls_session_parameters; PARAMETER VALUE ------------------------------ ------------------------------------ NLS_LANGUAGE GERMAN NLS_TERRITORY GERMANY NLS_CURRENCY Γé¼ NLS_ISO_CURRENCY GERMANY NLS_NUMERIC_CHARACTERS,. NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD.MM.YYYY NLS_DATE_LANGUAGE GERMAN NLS_SORT GERMAN NLS_TIME_FORMAT HH24:MI:SSXFF NLS_TIMESTAMP_FORMAT DD.MM.RR HH24:MI:SSXFF NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR NLS_TIMESTAMP_TZ_FORMAT DD.MM.RR HH24:MI:SSXFF TZR NLS_DUAL_CURRENCY Γé¼ NLS_COMP BINARY NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CONV_EXCP FALSE

Default-Datumsformate sind abhängig von NLS Ohne Formatmaske zu arbeiten, ist gefährlich... SQL> select to_date('22.02.2016') from dual; TO_DATE('22.02.2016') --------------------------- 22.02.2016 00:00:00 1 rows selected. Andere Session, andere NLS-Settings...? SQL> select to_date('22.02.2016') from dual; select to_date('22.02.2016') from dual * FEHLER in Zeile 1: ORA-01843: Kein gültiger Monat

Besser: Explizite Formate verwenden Explizite Formatmaske SQL> select to_date('22.02.2016', 'DD.MM.YYYY') DAT from dual; DAT --------------------------- 22.02.2016 00:00:00 Aber... SQL> select to_date('22-mar-2016', 'DD-MON-YYYY') DAT from dual; select to_date('22-mar-2016', 'DD-MON-YYYY') DAT from dual * FEHLER in Zeile 1: ORA-01843: Kein gültiger Monat

Besser: Explizite Formate verwenden Explizite Formatmaske und Datumssprache... SQL> select to_date('22-mar-2016', 'DD-MON-YYYY', 'nls_date_language=''english''') DAT from dual; DAT --------------------------- 22.03.2016 00:00:00 NLS_DATE_LANGUAGE ist wichtig für... Vollständige und abgekürzte Monatsnamen Vollständige und abgekürzte Tagesnamen Erster Tag der Woche (bei uns: Montag, in USA: Sonntag)

NLS-Unabhängige Datums-Literale: Ja, die gibt es auch! DATE-Literal nur für ein Datum ohne Uhrzeit SQL> select DATE'2016-01-01' as DATE_INDEPENDENT_NLS from dual; DATE_INDEPENDENT_NLS --------------------------- 22.02.2016 00:00:00 TIMESTAMP-Literal SQL> select TIMESTAMP'2016-01-01 20:00:00.183 CET' as TS_INDEPENDENT_NLS from dual; TS_INDEPENDENT_NLS -------------------------------------- 01.01.16 20:00:00,183000000 CET

Datumsarithmetik Klassische Arbeit mit DATE: Addition von Dezimalzahlen SQL> select sysdate, sysdate + 1 nxt_date from dual; SYSDATE NXT_DATE ------------------- ------------------- 22.02.2016 11:04:29 23.02.2016 11:04:29 SQL> select sysdate, sysdate - 1/48 nxt_date from dual; SYSDATE NXT_DATE ------------------- ------------------- 22.02.2016 11:04:34 22.02.2016 10:34:34 Auch mit TIMESTAMP möglich; dann aber automatische Konvertierung nach DATE SQL> select sysdate, sysdate + 1/(24*60) nxt_date from dual; SYSDATE NXT_DATE ------------------- ------------------- 22.02.2016 11:04:57 22.02.2016 11:05:57

Datumsarithmetik Arbeit mit INTERVAL-Datentyp SQL> select sysdate, sysdate + INTERVAL '1' DAY nxt_date from dual; SYSDATE NXT_DATE ------------------- ------------------- 22.02.2016 11:04:29 23.02.2016 11:04:29 SQL> select sysdate, sysdate + INTERVAL '30' MINUTE nxt_date from dual; SYSDATE NXT_DATE ------------------- ------------------- 22.02.2016 11:04:34 22.02.2016 10:34:34 SQL> select sysdate, sysdate + INTERVAL '1' MINUTE nxt_date from dual; SYSDATE NXT_DATE ------------------- ------------------- 22.02.2016 11:04:57 22.02.2016 11:05:57

Datumsarithmetik mit INTERVAL-Datentypen Aufpassen mit dem MONTH-Interval am Ende eines Monats SQL> -- 28.01.2016 SQL> select sysdate, sysdate + INTERVAL '1' MONTH nxt_date from dual; SYSDATE NXT_DATE ------------------- ------------------- 28.01.2016 11:04:29 28.02.2016 11:04:29

Datumsarithmetik mit INTERVAL-Datentypen Aufpassen mit dem MONTH-Interval am Ende eines Monats SQL> -- 28.01.2016 SQL> select sysdate, sysdate + INTERVAL '1' MONTH nxt_date from dual; SYSDATE NXT_DATE ------------------- ------------------- 28.01.2016 11:04:29 28.02.2016 11:04:29 SQL> -- 30.01.2016 SQL> select sysdate, sysdate + INTERVAL '1' MONTH nxt_date from dual;

Datumsarithmetik mit INTERVAL-Datentypen Aufpassen mit dem MONTH-Interval am Ende eines Monats SQL> -- 28.01.2016 SQL> select sysdate, sysdate + INTERVAL '1' MONTH nxt_date from dual; SYSDATE NXT_DATE ------------------- ------------------- 28.01.2016 11:04:29 28.02.2016 11:04:29 SQL> -- 30.01.2016 SQL> select sysdate, sysdate + INTERVAL '1' MONTH nxt_date from dual; select sysdate, sysdate + INTERVAL '1' MONTH nxt_date from dual; * FEHLER in Zeile 1: ORA-01839: Datum für angegebenen Monat nicht gültig

Datumsarithmetik mit INTERVAL-Datentypen ADD_MONTHS-Funktion berücksichtigt die Monatslängen SQL> -- 28.01.2016 SQL> select sysdate, sysdate + INTERVAL '1' MONTH nxt_date from dual; SYSDATE NXT_DATE ------------------- ------------------- 28.01.2016 11:04:29 28.02.2016 11:04:29 SQL> -- 30.01.2016 SQL> select sysdate, add_months(sysdate, 1) nxt_date from dual; SYSDATE NXT_DATE ------------------- ------------------- 30.01.2016 11:04:29 29.02.2016 11:04:29

Datumsarithmetik: Subtraktion mit DATE Subtraktion mit DATE liefert Dezimalzahlen zurück. SQL> select DATE'2016-04-29' - DATE'2016-01-01' date_diff from dual; DATE_DIFF ---------------- 119 SQL> select to_date('2016-04-29 12:00', 'YYYY-MM-DD HH24:MI') to_date('2016-04-27 08:30', 'YYYY-MM-DD HH24:MI') date_diff from dual; DATE_DIFF ---------------- 2,14583333

Datumsarithmetik: Subtraktion mit DATE Dezimalzahlen lassen sich umrechnen... SQL> select numtodsinterval( to_date('2016-04-29 12:00', 'YYYY-MM-DD HH24:MI') to_date('2016-04-27 08:30', 'YYYY-MM-DD HH24:MI'),' 'DAY' ) date_diff from dual; DATE_DIFF ----------------------------- +000000002 03:30:00.000000000 Zwei Intervalldatentypen Interval Day to Second Interval Year to Month

Einige Hilfsfunktionen für DATE und TIMESTAMP -1- TRUNC: Schneidet Teile des Datums ab default: TRUNC 'DAY' TRUNC('2016-02-22 14:26', 'DAY') '2016-02-22 00:00' TRUNC('2016-02-22 14:26', 'HH') '2016-02-22 14:00' ROUND: Rundet ein Datum ROUND('2016-02-22 14:26', 'HH') '2016-02-22 14:00' ROUND('2016-02-22 14:36', 'HH') '2016-02-22 15:00' EXTRACT: Extrahiert Datumsteile EXTRACT(YEAR from DATE'2016-02-22') 2016 EXTRACT(MONTH from DATE'2016-02-22') 2

Einige Hilfsfunktionen für DATE und TIMESTAMP -2- NEXT_DAY: Gibt das Datum des nächsten geforderten Wochentags zurück Achtung: NLS_DATE_LANGUAGE ist hier wichtig! NEXT_DAY(DATE'2016-02-23', 'DIE') '2016-03-01' NEXT_DAY(DATE'2016-02-23', to_char(date'2001-01-02','day')) LAST_DAY: Gibt des Monatsultimo zurück LAST_DAY (DATE'2016-02-16') '2016-02-29' LAST_DAY (DATE'2016-01-16') '2016-01-31' Das ist ein Dienstag

PL/SQL Challenge schon gespielt? http://plsqlchallenge.oracle.com

Oracle Developer Monthly ab sofort on Demand http://tinyurl.com/oradevmonthly

Fragen und Diskussionen auf Twitter Nächster Oracle Developer Monthly Ausgabe 03/2016 erscheint Ende März 2016 Nächster Oracle Database Monthly 2. März 2016 14:00 Uhr #oradevmonthly http://tinyurl.com/oradevmonthly http://tinyurl.com/oradbamonthly