35
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | APEX_JSON ist nicht alles. JSON-Funktionen der Oracle DB Dr. Beda Hammerschmidt, Oracle Corporation Carsten Czarski, ORACLE Deutschland B.V. Co KG Follow me on twitter: @bch_t, @cczarski Oracle Confidential – Internal/Restricted/Highly Restricted

APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Embed Size (px)

Citation preview

Page 1: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

APEX_JSON ist nicht alles. JSON-Funktionen der Oracle DB

Dr. Beda Hammerschmidt, Oracle Corporation Carsten Czarski, ORACLE Deutschland B.V. Co KG Follow me on twitter: @bch_t, @cczarski

Oracle Confidential – Internal/Restricted/Highly Restricted

Page 2: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

JSON UND APEX 5.0: APEX_JSON APEX_JSON ist nicht alles. JSON-Funktionen der Oracle DB

Page 3: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

JSON und PL/SQL: APEX_JSON

• Mit APEX 5.0 eingeführt

– Teil der APEX-Installation

– Aber auch außerhalb von APEX oder ganz ohne APEX nutzbar

• Einfaches Erzeugen oder Parsen von JSON-Dateien – Basiert auf Open Source

– Direktes Schreiben in den HTP Buffer oder in einen CLOB

– SQL-Unterstützung für JSON ist Teil der Datenbank ab 12.1.0.2

https://docs.oracle.com/cd/E59726_01/doc.50/e39149/apex_json.htm#AEAPI29635

Page 4: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

JSON erzeugen mit PL/SQL

• PL/SQL-Package APEX_JSON

– Basiert auf Open Source PL/JSON

– Mit APEX 5.0 installiert

– Auch ohne APEX nutzbar

• JSON "programmatisch" erstellen

– Objekte mit OPEN|CLOSE_OBJECT

– Arrays mit OPEN|CLOSE_ARRAY

– Attribute mit WRITE

Page 5: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

JSON erzeugen mit APEX_JSON

• Ausgabe in einen CLOB

– Generisch nutzbar

– Ausgabe erfolgt in temp. LOB • Cache: TRUE fast immer richtig

• Dur: SESSION oder CALL

– Wichtig: LOB ggfs. freigeben

• Ausgabe in den HTP Buffer

– Für Web-Anwendungen (APEX)

– Header und Browser-Caching setzen

Oracle Confidential – Internal/Restricted/Highly Restricted 5

PROCEDURE INITIALIZE_CLOB_OUTPUT Argument Name Typ --------------------------- --------------- P_DUR BINARY_INTEGER P_CACHE BOOLEAN P_INDENT BINARY_INTEGER PROCEDURE INITIALIZE_OUTPUT Argument Name Typ --------------------------- --------------- P_HTTP_HEADER BOOLEAN P_HTTP_CACHE BOOLEAN P_HTTP_CACHE_ETAG VARCHAR2 P_INDENT BINARY_INTEGER

Page 6: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

JSON dynamisch erzeugen – per Cursor

SQL> select make_json(cursor(select * from emp)) as json_clob from dual; JSON_CLOB -------------------------------------------------------------------------------- {"query": [ { "EMPNO":7369 , "ENAME":"SMITH" , "JOB":"CLERK" , "MGR":7902 , "HIREDATE":"1980-12-17T00:00:00Z" , "SAL":800 , "DEPTNO":20 } , { : } ] }

http://sql-plsql-de.blogspot.com/2015/05/apexjson-ohne-apex-json-erzeugen-mit.html

Page 7: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

APEX_JSON: JSON parsen

• APEX_JSON.PARSE

– JSON-Parsing und Ablage in Memory

– Zugriff mit GET_XXX Aufrufen

Page 8: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

APEX_JSON: JSON parsen

• APEX_JSON.PARSE

– JSON-Parsing und Ablage in Memory

– Zugriff mit GET_XXX Aufrufen

• Alternativ: Umweg über XMLTYPE

– Danach XML-Parsing

– Mehr Möglichkeiten

Page 9: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

ENABLE FAST APPLICATION DEVELOPMENT Native JSON Unterstützung in der Oracle Datenbank

9

Page 10: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Anforderungen agiler Anwendungsentwicklung

• Schema-Flexibilität

– Endgültiges Schema zu Beginn unbekannt

– Hinzufügen oder Wegfallen von Feldern

– Kardinalitäten ändern sich

– Daten mit altem Schema beibehalten,

– "Data First - Schema Later or Never"

• Zugriff von verschiedenen Clients und Programmiersprachen

• Skalierbarkeit, Cloud Deployment, ….

Oracle Confidential – Internal/Restricted/Highly Restricted 10

Page 11: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Anforderungen agiler Anwendungsentwicklung

• Schema-Flexibilität

– Endgültiges Schema zu Beginn unbekannt

– Hinzufügen oder Wegfallen von Feldern

– Kardinalitäten ändern sich

– Daten mit altem Schema beibehalten,

– "Data First - Schema Later or Never"

• Zugriff von verschiedenen Clients, Programmiersprachen

• Skalierbarkeit, Cloud Deployment, ….

Oracle Confidential – Internal/Restricted/Highly Restricted 11

"Wir brauchen eine NoSQL Datenbank" Aber was ist mit … Abfragesprache, Transaktionen, OLTP oder OLAP, Enterprise Features, Product Maturity, Security, Betriebskonzept, etc …?

Page 12: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Schemaless Development mit Oracle12c und JSON

12

Zugriffe per SQL oder per API • SQL/JSON-Funktionen: JSON-Zugriffe mit SQL

• REST API: Zugriffe per API via HTTP – ohne SQL HTTP(S) client

JSON

JSON in der Datenbank speichern • Kein festes Schema mehr nötig • JSON-Dokumente beschreiben sich selbst

Page 13: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Wie genau geht das?

Oracle Confidential – Internal/Restricted/Highly Restricted 13

Storage

Indexing

SQL/JSON Queries

REST/Java Apis

Page 14: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Wie genau geht das?

• JSON als VARCHAR2, CLOB oder BLOB

– Kein eigener Datentyp – mit Absicht!

– Check Constraint IS JSON stellt JSON Syntax sicher

CREATE TABLE jtab( id NUMBER, jcol CLOB, CONSTRAINT c1 CHECK(jcol IS JSON));

– Alle Clients können JSON nutzen JDBC, OCI, PHP, node.js, APEX, …

– Alle DB-Features mit JSON nutzbar Import/Export, Replication, Golden Gate, …

Oracle Confidential – Internal/Restricted/Highly Restricted 14

Storage

Indexing

SQL/JSON Queries

REST/Java Apis

Page 15: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Wie genau geht das?

• SQL/JSON Standard für Abfragen – JSON_VALUE

– JSON_QUERY

– JSON_EXISTS

– JSON_TABLE

• Navigation in JSON ähnlich JavaScript

– $.address[0].city

Oracle Confidential – Internal/Restricted/Highly Restricted 15

Storage

Indexing

SQL/JSON Queries

REST/Java Apis

SELECT jtab.jsol.text, jtab.jcol.user.screenName FROM jsontab;

Page 16: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

SQL/JSON: Beispiel 1

Oracle Confidential – Internal/Restricted/Highly Restricted 16

SELECT JSON_VALUE(jcol, '$.id') FROM jtab; --------------------------------- 578903819884585000

{ "id": 578903819884585000, "text": "RT @iAdvise_live: #countdown naar #Apexworld @OGh_nl #iadvise_live @Yvke1983 geeft met #Robeco een client case over #twitterbootstrap", "geo": { "type": "Point", "coordinates": [ 37.78217, -122.40062 ] }, "lang": "nl", "retweet_count": 2, "created_at": "Fri Mar 20 13:00:00 +0000 2015", "user": { "statuses_count": 266, "lang": "en", "id": 1568150293, "favourites_count": 62, "name": "Jonathan van Vianen", "screen_name": "jvanvianen78", "followers_count": 187, "friends_count": 493 } }

Page 17: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

SQL/JSON Beispiel 2

Oracle Confidential – Internal/Restricted/Highly Restricted 18

{ "id": 578903819884585000, "text": "RT @iAdvise_live: #countdown naar #Apexworld @OGh_nl #iadvise_live @Yvke1983 geeft met #Robeco een client case over #twitterbootstrap", "geo": { "type": "Point", "coordinates": [ 37.78217, -122.40062 ] }, "lang": "nl", "retweet_count": 2, "created_at": "Fri Mar 20 13:00:00 +0000 2015", "user": { "statuses_count": 266, "lang": "en", "id": 1568150293, "favourites_count": 62, "name": "Jonathan van Vianen", "screen_name": "jvanvianen78", "followers_count": 187, "friends_count": 493 } }

SELECT JSON_QUERY(jcol, '$.user' FROM jtab; ---------------------------------------- { "statuses_count": 266, "lang": "en", "id": 1568150293, "favourites_count": 62, "name": "Jonathan van Vianen", "screen_name": "jvanvianen78", "followers_count": 187, "friends_count": 493 }

Page 18: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

SQL/JSON Beispiel 3

Oracle Confidential – Internal/Restricted/Highly Restricted 19

{ "id": 578903819884585000, "text": "RT @iAdvise_live: #countdown naar #Apexworld @OGh_nl #iadvise_live @Yvke1983 geeft met #Robeco een client case over #twitterbootstrap", "geo": { "type": "Point", "coordinates": [ 37.78217, -122.40062 ] }, "lang": "nl", "retweet_count": 2, "created_at": "Fri Mar 20 13:00:00 +0000 2015", "user": { "statuses_count": 266, "lang": "en", "id": 1568150293, "favourites_count": 62, "name": "Jonathan van Vianen", "screen_name": "jvanvianen78", "followers_count": 187, "friends_count": 493 } }

SELECT jt.* FROM jtab, JSON_TABLE( jcol, '$' COLUMNS ( "ID" NUMBER PATH '$.id' "TEXT" PATH '$.text', "LANG" PATH '$.lang' DEFAULT ‘???' ON ERROR, "USR " VARCHAR2(40) PATH '$.user.name', "FOLLOWER" NUMBER PATH '$.followers_count', "FRIENDS" NUMBER PATH '$.friends_count' ) ) jt; ID TEXT LANG USR FOLLOWER FRIENDS --------------------------------------------------- 578903 RT @i nl Jonathan 187 493

Page 19: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

SQL/JSON Beispiel 4

Oracle Confidential – Internal/Restricted/Highly Restricted 20

{ "id": 578903819884585000, "text": "RT @iAdvise_live: #countdown naar #Apexworld @OGh_nl #iadvise_live @Yvke1983 geeft met #Robeco een client case over #twitterbootstrap", "geo": { "type": "Point", "coordinates": [ 37.78217, -122.40062 ] }, "lang": "nl", "retweet_count": 2, "created_at": "Fri Mar 20 13:00:00 +0000 2015", "user": { "statuses_count": 266, "lang": "en", "id": 1568150293, "favourites_count": 62, "name": "Jonathan van Vianen", "screen_name": "jvanvianen78", "followers_count": 187, "friends_count": 493 } }

CREATE OR REPLACE VIEW TwitterV AS SELECT jt.* FROM jtab, JSON_TABLE( jcol, '$' COLUMNS ( "ID" NUMBER PATH '$.id' "TEXT" PATH '$.text', "LANG" PATH '$.lang' DEFAULT ‘???' ON ERROR, "USR“ VARCHAR2(40) PATH '$.user.name', "FOLLOWER" NUMBER PATH '$.followers_count', "FRIENDS" NUMBER PATH '$.friends_count' ) ) jt;

Page 20: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

SQL/JSON Beispiel 4

Oracle Confidential – Internal/Restricted/Highly Restricted 21

{ "id": 578903819884585000, "text": "RT @iAdvise_live: #countdown naar #Apexworld @OGh_nl #iadvise_live @Yvke1983 geeft met #Robeco een client case over #twitterbootstrap", "geo": { "type": "Point", "coordinates": [ 37.78217, -122.40062 ] }, "lang": "nl", "retweet_count": 2, "created_at": "Fri Mar 20 13:00:00 +0000 2015", "user": { "statuses_count": 266, "lang": "en", "id": 1568150293, "favourites_count": 62, "name": "Jonathan van Vianen", "screen_name": "jvanvianen78", "followers_count": 187, "friends_count": 493 } }

CREATE OR REPLACE VIEW TwitterV AS SELECT jt.* FROM jtab, JSON_TABLE( jcol, '$' COLUMNS ( "ID" NUMBER PATH '$.id' : "FRIENDS" NUMBER PATH '$.friends_count' ) ) jt; -- Find most active German Tweeter SELECT usr, count(1) "COUNT" FROM tweetv WHERE lang = 'de' GROUP BY usr ORDER BY "COUNT" DESC FETCH FIRST 10 ROWS ONLY; USR COUNT ------------------------------ flederbine 28 cczarski 18 : :

Page 21: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Wie genau geht das?

• B-Tree/Bitmap Index

– CREATE INDEX id_idx ON jtab (jtab.jcol.id);

– CREATE BITMAP INDEX lang_idx ON jtab (jtab.jcol.lang);

– Felder müssen bekannt sein

• JSON Search Index

– Indiziert alle Felder als "Volltextindex"

– Ideal für unbekannte Daten

– CREATE INDEX po_search_idx ON j_purchaseorder (po_document) INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS ( 'section group CTXSYS.JSON_SECTION_GROUP SYNC (ON COMMIT)' );

Oracle Confidential – Internal/Restricted/Highly Restricted 22

Storage

Indexing

SQL/JSON Queries

REST/Java Apis

Page 22: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Wie genau geht das?

Oracle Confidential – Internal/Restricted/Highly Restricted 23

Storage

Indexing

SQL/JSON Queries

REST/Java Apis

• REST Abstraktion für Tabellen und SQL

• Collection JSON-Sammlung

• REST Endpoints (GET, PUT, DELET, POST)

• JSON-Query Language

{"lang": "nl"} {"and":[ {"lang": "nl"}, {"retweet_count":{"$gt":3}} ]}

Page 23: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

REST-Sicht auf eine JSON-Collection ( Tabelle)

Oracle Confidential – Internal/Restricted/Highly Restricted 24

Page 24: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Oracle REST Data Services (ORDS)

Oracle12c

Standard-REST-Aufrufe GET, PUT, POST HTTP, HTTPS

REST Client

JSON

JSON in der Datenbank SQL Queries APEX Anwendungen

Oracle REST Data Services

URI JSON Collection API Auto Generated SQL

Transform JSON Rückgabe JSON

REST Data Services - No need for developers to write SQL - REST is stateless – no need to manage sessions or transactions

25

Page 25: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

JSON in der Oracle-Datenbank: Zusammenfassung

26

Access JSON documents using RESTful API

PUT /my_database/my_schema/customers HTTP/1.0 Content-Type: application/json Body: { "firstName": "John", “lastName”: "Smith", "age": 25, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021“, "isBusiness" : false }, "phoneNumbers": [ {"type": "home", "number": "212 555-1234"}, {"type": "fax", "number": "646 555-4567"} ] }

select c.json_document.firstName, c.json_document.lastName, c.json_document.address.city from customers c; FIRSTNAME LASTNAME CITY ----------- ----------- -------------- John Smith New York : : :

Query JSON using SQL

Oracle Database 12c

JSON

Page 26: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

JSON UND ORACLE12C IN APEX NUTZEN Das Zusammenspiel

27

Page 27: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Twitter Analyse mit SQL/JSON und APEX

Oracle Confidential – Internal/Restricted/Highly Restricted 28

Page 28: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Twitter Analyse mit SQL/JSON und APEX

Oracle Confidential – Internal/Restricted/Highly Restricted 29

Page 29: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Twitter Analyse mit SQL/JSON und APEX

Oracle Confidential – Internal/Restricted/Highly Restricted 30

Page 30: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Twitter Analyse mit SQL/JSON und APEX

Oracle Confidential – Internal/Restricted/Highly Restricted 31

Page 31: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

#apexsummer15

• APEX 5.0 Summer School 2015 – 8 Webinare – Juli 2015 – Mittwochs und Freitags

• Alles über APEX 5.0 – Page Designer, Universal Theme, SQL und PL/SQL, Migration,

Interactive Reports, Plug-Ins, Sample Applications und mehr …

• Von den deutschsprachigen Community-Experten – Peter Raganitsch, Niels de Bruijn, Oliver Lemm, Denes Kubicek,

Tobias Arnhold, Dietmar Aust, Christian Rokitta, Carsten Czarski, Jürgen Schuster

Oracle Confidential – Internal/Restricted/Highly Restricted 32

tinyurl.com/orclapexsummerschool

Page 32: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

http://blogs.oracle.com/apexcommunity_deutsch

Page 33: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

[email protected] http://blogs.oracle.com/jsondb Twitter: @bch_t

[email protected]

http://tinyurl.com/apexcommunity http://sql-plsql-de.blogspot.com

Twitter: @cczarski

Page 34: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Page 35: APEX JSON ist nicht alles. JSON-Funktionen der Oracle DB · Title: Oracle Application Express: Ein Überblick (inkl. APEX 5.0 Features) Author: Carsten Czarski Subject: Oracle Application