+ All Categories
Home > Documents > Oracle Developer Monthly

Oracle Developer Monthly

Date post: 16-Oct-2021
Category:
Author: others
View: 0 times
Download: 0 times
Share this document with a friend
Embed Size (px)
of 29 /29
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. Oracle Developer Monthly Datenbank-Update für Anwendungsentwickler Februar 2016 Carsten Czarski Business Unit Database Oracle Deutschland B.V. & Co KG
Transcript
Oracle Developer Monthly: Juni 2014Oracle Developer Monthly Datenbank-Update für Anwendungsentwickler Februar 2016
Carsten Czarski Business Unit Database Oracle Deutschland B.V. & Co KG
Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
http://tinyurl.com/ModernAppDev12c http://tinyurl.com/oracloudnow
http://tinyurl.com/ModernAppDev12c http://tinyurl.com/modernappdev
Wichtige Termine
• 10. März APEX Meetup in Hamburg – mit Marc Sewtz
• 15. März Oracle Data Warehouse Konferenz 2016 in Mainz – 2 Tage
• 15. März "APEX Startup" Hands-On Workshop bei der MT AG in Ratingen
• 16. März "APEX Startup" Hands-On Workshop bei Oracle in Dreieich
• 17. März APEX Meetup in München – mit Marc Sewtz
• 20. April Oracle IT Transformation Summit – München
• 26. April DOAG APEX Connect 2016 in Berlin
• Mai 2016 DOAG 2016 Datenbank in Düsseldorf
• Juni 2016 DOAG 2016 BI in Bonn
Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
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
Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
Aktuelle Software Release und Patchstände
• Oracle Datenbank 12.1.0.2
• SQL Developer 4.1.3
• node-oracledb 1.6*
• Oracle NoSQL DB 12.1.3.5.2
Datumsverarbeitung in der Oracle-Datenbank
• Datentypen
– DATE, TIMESTAMP, TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE
• Datumsformate
Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
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
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.
Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
Datumsformate
Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
Default-Datumsformate sind abhängig von NLS
• Ohne Formatmaske zu arbeiten, ist gefährlich ...
• 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
Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
Besser: Explizite Formate verwenden
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
Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
Besser: Explizite Formate verwenden
• Explizite Formatmaske und Datumssprache ...
• 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)
SQL> select to_date('22-MAR-2016', 'DD-MON-YYYY', 'nls_date_language=''english''') DAT from dual; DAT --------------------------- 22.03.2016 00:00:00
Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
NLS-Unabhängige Datums-Literale: Ja, die gibt es auch!
• DATE-Literal nur für ein Datum ohne Uhrzeit
• 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
Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
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 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
Auch mit TIMESTAMP möglich; dann aber
automatische Konvertierung
nach DATE
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
Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
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
Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
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;
Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
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
Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
Datumsarithmetik mit INTERVAL-Datentypen
Datumsarithmetik: Subtraktion mit DATE
Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
Datumsarithmetik: Subtraktion mit DATE
• Dezimalzahlen lassen sich umrechnen ...
Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
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
• EXTRACT: Extrahiert Datumsteile
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'
– LAST_DAY (DATE'2016-02-16') '2016-02-29'
– LAST_DAY (DATE'2016-01-16') '2016-01-31'
PL/SQL Challenge – schon gespielt?
Oracle Developer Monthly – ab sofort on Demand
http://tinyurl.com/oradevmonthly
Nächster Oracle Developer Monthly
Nächster Oracle Database Monthly
#oradevmonthly

Recommended