SlideShare uma empresa Scribd logo
1 de 22
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
GOING FULL CIRCLE
Building a Native JSON Database API
Marco Gralike
Principle Consultant
Oracle Ace Director
eProseed, 09-12-2015
eProseed Confidential
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
AGENDA
Introduction
Demo
References
1
2
3
2
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
INTRODUCTION
The supporting slide…?
eProseed Confidential3
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | eProseed Confidential4
t: @MGralike
w: www.xmldb.nl
e: marco.gralike@eproseed.com
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
AGENDA
Introduction
Demo
References
1
2
3
5
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
DEMO
eProseed Confidential6
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
AGENDA
Introduction
Demo
References
1
2
3
7
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
REFERENCES
Syntax examples and where to go from here…
eProseed Confidential8
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
REFERENCES
eProseed Confidential9
What is JSON?
Basic constructs
(recursive)
 Base values
number,
string,
boolean, …
 Objects { }
sets of label-value
pairs
 Arrays [ ]
lists of values
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
REFERENCES
eProseed Confidential10
Create Table - IS JSON Clause
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
REFERENCES
• JSON_VALUE
– Return a single scalar value from a JSON Document
• JSON_QUERY
– Return a JSON Object or JSON Array from a JSON Document
• JSON_EXISTS
– Filter rows based on JSON-PATH expressions
• JSON_TABLE
– Project in-line, nested relational views from JSON Documents
• JSON_TEXTCONTAINS
– JSON aware full-text searching of JSON Documents
eProseed Confidential11
Operators
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
REFERENCES
eProseed Confidential12
JSON Path Expressions
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
REFERENCES
• Used in the FROM clause
• Creation of an inline relational view of JSON
eProseed Confidential13
JSON_TABLE (1)
SQL> SELECT m.*
2 FROM J_PURCHASEORDER p
3 , JSON_TABLE
4 ( p.PO_DOCUMENT, '$'
5 columns
6 po_rno FOR ORDINALITY,
7 po_number NUMBER(10) path '$.PONumber'
8 ) m
9 WHERE po_number > 1600 and PO_Number < 1605;
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
REFERENCES
eProseed Confidential14
JSON_TABLE (2)
SQL> SELECT m.*
2 FROM J_PURCHASEORDER p
3 , JSON_TABLE
4 ( p.PO_DOCUMENT, '$'
5 columns
6 po_number NUMBER(10) path '$.PONumber',
7 reference VARCHAR2(30) path '$.Reference',
8 requestor VARCHAR2(32) path '$.Requestor',
9 userid VARCHAR2(10) path '$.User',
10 center VARCHAR2(16) path '$.CostCenter'
11 ) m
12 WHERE po_number > 1600 and PO_Number < 1605;
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
REFERENCES
• NULL on ERROR
– The Default
– Return NULL instead of raising the error
• ERROR on ERROR
– Raise the error (no special handling)
• TRUE ON ERROR
– In JSON_EXISTS
– Return TRUE instead of raising the error
eProseed Confidential15
ERROR Handling
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
REFERENCES
• JSON_TABLE, JSON_QUERY
– WITHOUT WRAPPER
• Default, no change
• Raise error, if scalar/multiple values in non JSON result
– WITH WRAPPER
• Wrap result as a JSON ARRAY [ ]
– WITH CONDITIONAL WRAPPER
• Wrap result as a JSON ARRAY [ ]
• Don’t wrap result if scalar/multiple values in JSON result
eProseed Confidential16
Un/conditional Wrapper
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
REFERENCES
eProseed Confidential17
WRAPPER Examples
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
REFERENCES
• JSON_TABLE
– FORMAT JSON
• Forces JSON_QUERY behavior
• Therefore can have an explicit wrapper clause
– Default
• Projection like JSON_VALUE
eProseed Confidential18
FORMAT JSON - Clause
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
REFERENCES
RESOURCES
• XMLDB / JSON Developers Guide
• HOWTO: Building a JSON Database API (1)
• HOWTO: Building a JSON Database API (2)
• HOWTO: Building a JSON Database API (3)
• HOWTO: Building a JSON Database API (4)
eProseed Confidential19
Where to go from here…
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
REFERENCES
RESOURCES
• JSON_TABLE (syntax)
• A WikiPedia JSON page
• WikiPedia API (doc)
• JSONView (JSON browser plugin)
• UTL_HTTP and SSL (HTTPS) using Oracle Wallets
eProseed Confidential20
Where to go from here…
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
REFERENCES
RESOURCES
• Stanford - Introduction to Databases (JSON)
• Eclipse JSON Editor Plugin
• JSON Schema
• Get Started With JSON
• www.json-generator.com
• JSON Datasets: www.data.gov
eProseed Confidential21
Where to go from here…
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | eProseed Confidential22

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Oracle Management Cloud - IT Analytics - Resource Analytics
Oracle Management Cloud - IT Analytics - Resource AnalyticsOracle Management Cloud - IT Analytics - Resource Analytics
Oracle Management Cloud - IT Analytics - Resource Analytics
 
MySQL Document Store - How to replace a NoSQL database by MySQL without effor...
MySQL Document Store - How to replace a NoSQL database by MySQL without effor...MySQL Document Store - How to replace a NoSQL database by MySQL without effor...
MySQL Document Store - How to replace a NoSQL database by MySQL without effor...
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
 
MySQL Document Store - when SQL & NoSQL live together... in peace!
MySQL Document Store - when SQL & NoSQL live together... in peace!MySQL Document Store - when SQL & NoSQL live together... in peace!
MySQL Document Store - when SQL & NoSQL live together... in peace!
 
20180420 hk-the powerofmysql8
20180420 hk-the powerofmysql820180420 hk-the powerofmysql8
20180420 hk-the powerofmysql8
 
20190615 hkos-mysql-troubleshootingandperformancev2
20190615 hkos-mysql-troubleshootingandperformancev220190615 hkos-mysql-troubleshootingandperformancev2
20190615 hkos-mysql-troubleshootingandperformancev2
 
Swedish MySQL User Group - MySQL InnoDB Cluster
Swedish MySQL User Group - MySQL InnoDB ClusterSwedish MySQL User Group - MySQL InnoDB Cluster
Swedish MySQL User Group - MySQL InnoDB Cluster
 
pre-FOSDEM MySQL day, February 2018 - MySQL Document Store
pre-FOSDEM MySQL day, February 2018 - MySQL Document Storepre-FOSDEM MySQL day, February 2018 - MySQL Document Store
pre-FOSDEM MySQL day, February 2018 - MySQL Document Store
 
MySQL InnoDB Cluster and Group Replication in a Nutshell
MySQL InnoDB Cluster and Group Replication in a NutshellMySQL InnoDB Cluster and Group Replication in a Nutshell
MySQL InnoDB Cluster and Group Replication in a Nutshell
 
Oracle Open World 2018 / Code One : MySQL 8.0 Document Store
Oracle Open World 2018 /  Code One : MySQL 8.0 Document StoreOracle Open World 2018 /  Code One : MySQL 8.0 Document Store
Oracle Open World 2018 / Code One : MySQL 8.0 Document Store
 
MySQL User Group NL: MySQL 8.0 Document Store- NoSQL with all the benefits of...
MySQL User Group NL: MySQL 8.0 Document Store- NoSQL with all the benefits of...MySQL User Group NL: MySQL 8.0 Document Store- NoSQL with all the benefits of...
MySQL User Group NL: MySQL 8.0 Document Store- NoSQL with all the benefits of...
 
20190817 coscup-oracle my sql innodb cluster sharing
20190817 coscup-oracle my sql innodb cluster sharing20190817 coscup-oracle my sql innodb cluster sharing
20190817 coscup-oracle my sql innodb cluster sharing
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
 
FOSDEM MySQL & Friends Devroom, February 2018 MySQL Point-in-Time Recovery l...
FOSDEM MySQL & Friends Devroom, February 2018  MySQL Point-in-Time Recovery l...FOSDEM MySQL & Friends Devroom, February 2018  MySQL Point-in-Time Recovery l...
FOSDEM MySQL & Friends Devroom, February 2018 MySQL Point-in-Time Recovery l...
 
REST Enabling Your Oracle Database
REST Enabling Your Oracle DatabaseREST Enabling Your Oracle Database
REST Enabling Your Oracle Database
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
 
Oracle Open World 2018 / Code One : MySQL 8.0 High Availability with MySQL I...
Oracle Open World 2018 / Code One  : MySQL 8.0 High Availability with MySQL I...Oracle Open World 2018 / Code One  : MySQL 8.0 High Availability with MySQL I...
Oracle Open World 2018 / Code One : MySQL 8.0 High Availability with MySQL I...
 
DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !
 
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute InfodeckServlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
 
Group Replication: A Journey to the Group Communication Core
Group Replication: A Journey to the Group Communication CoreGroup Replication: A Journey to the Group Communication Core
Group Replication: A Journey to the Group Communication Core
 

Destaque

BGOUG 2012 - Design concepts for xml applications that will perform
BGOUG 2012 - Design concepts for xml applications that will performBGOUG 2012 - Design concepts for xml applications that will perform
BGOUG 2012 - Design concepts for xml applications that will perform
Marco Gralike
 
UKOUG 2011 - Drag, Drop and other Stuff. Using your Database as a File Server
UKOUG 2011 - Drag, Drop and other Stuff. Using your Database as a File ServerUKOUG 2011 - Drag, Drop and other Stuff. Using your Database as a File Server
UKOUG 2011 - Drag, Drop and other Stuff. Using your Database as a File Server
Marco Gralike
 
Miracle Open World 2011 - XML Index Strategies
Miracle Open World 2011  -  XML Index StrategiesMiracle Open World 2011  -  XML Index Strategies
Miracle Open World 2011 - XML Index Strategies
Marco Gralike
 

Destaque (8)

BGOUG 2012 - Drag & drop and other stuff - Using your database as a file server
BGOUG 2012 - Drag & drop and other stuff - Using your database as a file serverBGOUG 2012 - Drag & drop and other stuff - Using your database as a file server
BGOUG 2012 - Drag & drop and other stuff - Using your database as a file server
 
UKOUG Tech14 - Using Database In-Memory Column Store with Complex Datatypes
UKOUG Tech14 - Using Database In-Memory Column Store with Complex DatatypesUKOUG Tech14 - Using Database In-Memory Column Store with Complex Datatypes
UKOUG Tech14 - Using Database In-Memory Column Store with Complex Datatypes
 
BGOUG 2012 - Design concepts for xml applications that will perform
BGOUG 2012 - Design concepts for xml applications that will performBGOUG 2012 - Design concepts for xml applications that will perform
BGOUG 2012 - Design concepts for xml applications that will perform
 
UKOUG 2011 - Drag, Drop and other Stuff. Using your Database as a File Server
UKOUG 2011 - Drag, Drop and other Stuff. Using your Database as a File ServerUKOUG 2011 - Drag, Drop and other Stuff. Using your Database as a File Server
UKOUG 2011 - Drag, Drop and other Stuff. Using your Database as a File Server
 
BGOUG 2012 - XML Index Strategies
BGOUG 2012 - XML Index StrategiesBGOUG 2012 - XML Index Strategies
BGOUG 2012 - XML Index Strategies
 
Miracle Open World 2011 - XML Index Strategies
Miracle Open World 2011  -  XML Index StrategiesMiracle Open World 2011  -  XML Index Strategies
Miracle Open World 2011 - XML Index Strategies
 
Oaktable World 2014 Kevin Closson: SLOB – For More Than I/O!
Oaktable World 2014 Kevin Closson:  SLOB – For More Than I/O!Oaktable World 2014 Kevin Closson:  SLOB – For More Than I/O!
Oaktable World 2014 Kevin Closson: SLOB – For More Than I/O!
 
OakTable World 2015 - Using XMLType content with the Oracle In-Memory Column...
OakTable World 2015  - Using XMLType content with the Oracle In-Memory Column...OakTable World 2015  - Using XMLType content with the Oracle In-Memory Column...
OakTable World 2015 - Using XMLType content with the Oracle In-Memory Column...
 

Semelhante a UKOUG Tech15 - Going Full Circle - Building a native JSON Database API

Mysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql FabricMysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp
 

Semelhante a UKOUG Tech15 - Going Full Circle - Building a native JSON Database API (20)

eProseed Oracle Open World 2016 debrief - Oracle 12.2.0.1 Database
eProseed Oracle Open World 2016 debrief - Oracle 12.2.0.1 DatabaseeProseed Oracle Open World 2016 debrief - Oracle 12.2.0.1 Database
eProseed Oracle Open World 2016 debrief - Oracle 12.2.0.1 Database
 
AVRO to JSON Conversion
AVRO to JSON ConversionAVRO to JSON Conversion
AVRO to JSON Conversion
 
REST Enabling your Oracle Database (2018 Update)
REST Enabling your Oracle Database (2018 Update)REST Enabling your Oracle Database (2018 Update)
REST Enabling your Oracle Database (2018 Update)
 
Real life-maf-2015
Real life-maf-2015Real life-maf-2015
Real life-maf-2015
 
Java API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and updateJava API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and update
 
Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...
Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...
Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...
 
Real life-maf-2015-k scope-final
Real life-maf-2015-k scope-finalReal life-maf-2015-k scope-final
Real life-maf-2015-k scope-final
 
Mysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql FabricMysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql Fabric
 
Api design and prototype
Api design and prototypeApi design and prototype
Api design and prototype
 
Pennsylvania Banner User Group Webinar: Oracle SQL Developer Tips & Tricks
Pennsylvania Banner User Group Webinar: Oracle SQL Developer Tips & TricksPennsylvania Banner User Group Webinar: Oracle SQL Developer Tips & Tricks
Pennsylvania Banner User Group Webinar: Oracle SQL Developer Tips & Tricks
 
Leverage integration cloud_service_for_ebs_
Leverage integration cloud_service_for_ebs_Leverage integration cloud_service_for_ebs_
Leverage integration cloud_service_for_ebs_
 
Java 9 New Features | Java Tutorial | What’s New in Java 9 | Java 9 Features ...
Java 9 New Features | Java Tutorial | What’s New in Java 9 | Java 9 Features ...Java 9 New Features | Java Tutorial | What’s New in Java 9 | Java 9 Features ...
Java 9 New Features | Java Tutorial | What’s New in Java 9 | Java 9 Features ...
 
OData - The Universal REST API
OData - The Universal REST APIOData - The Universal REST API
OData - The Universal REST API
 
Json and Jsonpath in Postgres 12
Json and Jsonpath in Postgres 12Json and Jsonpath in Postgres 12
Json and Jsonpath in Postgres 12
 
Developing on the aloashbei platform
Developing on the aloashbei platformDeveloping on the aloashbei platform
Developing on the aloashbei platform
 
JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?
 
AngularJS in practice
AngularJS in practiceAngularJS in practice
AngularJS in practice
 
Introduction to SAP Gateway and OData
Introduction to SAP Gateway and ODataIntroduction to SAP Gateway and OData
Introduction to SAP Gateway and OData
 
Introduction to OData and SAP NetWeaver Gateway.pptx
Introduction to OData and SAP NetWeaver Gateway.pptxIntroduction to OData and SAP NetWeaver Gateway.pptx
Introduction to OData and SAP NetWeaver Gateway.pptx
 
Java EE 7 for WebLogic 12c Developers
Java EE 7 for WebLogic 12c DevelopersJava EE 7 for WebLogic 12c Developers
Java EE 7 for WebLogic 12c Developers
 

Mais de Marco Gralike

UKOUG 2010 (Birmingham) - XML Indexing strategies - Choosing the Right Index ...
UKOUG 2010 (Birmingham) - XML Indexing strategies - Choosing the Right Index ...UKOUG 2010 (Birmingham) - XML Indexing strategies - Choosing the Right Index ...
UKOUG 2010 (Birmingham) - XML Indexing strategies - Choosing the Right Index ...
Marco Gralike
 
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 2
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 2OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 2
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 2
Marco Gralike
 
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
Marco Gralike
 

Mais de Marco Gralike (20)

UKOUG2018 - I Know what you did Last Summer [in my Database].pptx
UKOUG2018 - I Know what you did Last Summer [in my Database].pptxUKOUG2018 - I Know what you did Last Summer [in my Database].pptx
UKOUG2018 - I Know what you did Last Summer [in my Database].pptx
 
Oracle Database - JSON and the In-Memory Database
Oracle Database - JSON and the In-Memory DatabaseOracle Database - JSON and the In-Memory Database
Oracle Database - JSON and the In-Memory Database
 
UKOUG Tech14 - Getting Started With JSON in the Database
UKOUG Tech14 - Getting Started With JSON in the DatabaseUKOUG Tech14 - Getting Started With JSON in the Database
UKOUG Tech14 - Getting Started With JSON in the Database
 
Ordina Oracle Open World
Ordina Oracle Open WorldOrdina Oracle Open World
Ordina Oracle Open World
 
Starting with JSON Path Expressions in Oracle 12.1.0.2
Starting with JSON Path Expressions in Oracle 12.1.0.2Starting with JSON Path Expressions in Oracle 12.1.0.2
Starting with JSON Path Expressions in Oracle 12.1.0.2
 
An introduction into Oracle VM V3.x
An introduction into Oracle VM V3.xAn introduction into Oracle VM V3.x
An introduction into Oracle VM V3.x
 
An introduction into Oracle Enterprise Manager Cloud Control 12c Release 3
An introduction into Oracle Enterprise Manager Cloud Control 12c Release 3An introduction into Oracle Enterprise Manager Cloud Control 12c Release 3
An introduction into Oracle Enterprise Manager Cloud Control 12c Release 3
 
XML Amsterdam - Creating structure in unstructured data
XML Amsterdam - Creating structure in unstructured dataXML Amsterdam - Creating structure in unstructured data
XML Amsterdam - Creating structure in unstructured data
 
An AMIS Overview of Oracle database 12c (12.1)
An AMIS Overview of Oracle database 12c (12.1)An AMIS Overview of Oracle database 12c (12.1)
An AMIS Overview of Oracle database 12c (12.1)
 
Flexibiliteit & Snel Schakelen
Flexibiliteit & Snel SchakelenFlexibiliteit & Snel Schakelen
Flexibiliteit & Snel Schakelen
 
Hotsos 2013 - Creating Structure in Unstructured Data
Hotsos 2013 - Creating Structure in Unstructured DataHotsos 2013 - Creating Structure in Unstructured Data
Hotsos 2013 - Creating Structure in Unstructured Data
 
Expertezed 2012 Webcast - XML DB Use Cases
Expertezed 2012 Webcast - XML DB Use CasesExpertezed 2012 Webcast - XML DB Use Cases
Expertezed 2012 Webcast - XML DB Use Cases
 
ODTUG Webcast - Thinking Clearly about XML
ODTUG Webcast - Thinking Clearly about XMLODTUG Webcast - Thinking Clearly about XML
ODTUG Webcast - Thinking Clearly about XML
 
XFILES, The APEX 4 version - The truth is in there
XFILES, The APEX 4 version - The truth is in thereXFILES, The APEX 4 version - The truth is in there
XFILES, The APEX 4 version - The truth is in there
 
UKOUG 2010 (Birmingham) - XML Indexing strategies - Choosing the Right Index ...
UKOUG 2010 (Birmingham) - XML Indexing strategies - Choosing the Right Index ...UKOUG 2010 (Birmingham) - XML Indexing strategies - Choosing the Right Index ...
UKOUG 2010 (Birmingham) - XML Indexing strategies - Choosing the Right Index ...
 
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 2
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 2OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 2
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 2
 
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
 
Amis ACE
Amis ACEAmis ACE
Amis ACE
 
XML In The Real World - Use Cases For Oracle XMLDB
XML In The Real World - Use Cases For Oracle XMLDBXML In The Real World - Use Cases For Oracle XMLDB
XML In The Real World - Use Cases For Oracle XMLDB
 
Oracle Developer Day, 20 October 2009, Oracle De Meern, Holland: Oracle Datab...
Oracle Developer Day, 20 October 2009, Oracle De Meern, Holland: Oracle Datab...Oracle Developer Day, 20 October 2009, Oracle De Meern, Holland: Oracle Datab...
Oracle Developer Day, 20 October 2009, Oracle De Meern, Holland: Oracle Datab...
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

UKOUG Tech15 - Going Full Circle - Building a native JSON Database API

  • 1. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | GOING FULL CIRCLE Building a Native JSON Database API Marco Gralike Principle Consultant Oracle Ace Director eProseed, 09-12-2015 eProseed Confidential
  • 2. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | AGENDA Introduction Demo References 1 2 3 2
  • 3. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | INTRODUCTION The supporting slide…? eProseed Confidential3
  • 4. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | eProseed Confidential4 t: @MGralike w: www.xmldb.nl e: marco.gralike@eproseed.com
  • 5. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | AGENDA Introduction Demo References 1 2 3 5
  • 6. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | DEMO eProseed Confidential6
  • 7. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | AGENDA Introduction Demo References 1 2 3 7
  • 8. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | REFERENCES Syntax examples and where to go from here… eProseed Confidential8
  • 9. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | REFERENCES eProseed Confidential9 What is JSON? Basic constructs (recursive)  Base values number, string, boolean, …  Objects { } sets of label-value pairs  Arrays [ ] lists of values
  • 10. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | REFERENCES eProseed Confidential10 Create Table - IS JSON Clause
  • 11. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | REFERENCES • JSON_VALUE – Return a single scalar value from a JSON Document • JSON_QUERY – Return a JSON Object or JSON Array from a JSON Document • JSON_EXISTS – Filter rows based on JSON-PATH expressions • JSON_TABLE – Project in-line, nested relational views from JSON Documents • JSON_TEXTCONTAINS – JSON aware full-text searching of JSON Documents eProseed Confidential11 Operators
  • 12. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | REFERENCES eProseed Confidential12 JSON Path Expressions
  • 13. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | REFERENCES • Used in the FROM clause • Creation of an inline relational view of JSON eProseed Confidential13 JSON_TABLE (1) SQL> SELECT m.* 2 FROM J_PURCHASEORDER p 3 , JSON_TABLE 4 ( p.PO_DOCUMENT, '$' 5 columns 6 po_rno FOR ORDINALITY, 7 po_number NUMBER(10) path '$.PONumber' 8 ) m 9 WHERE po_number > 1600 and PO_Number < 1605;
  • 14. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | REFERENCES eProseed Confidential14 JSON_TABLE (2) SQL> SELECT m.* 2 FROM J_PURCHASEORDER p 3 , JSON_TABLE 4 ( p.PO_DOCUMENT, '$' 5 columns 6 po_number NUMBER(10) path '$.PONumber', 7 reference VARCHAR2(30) path '$.Reference', 8 requestor VARCHAR2(32) path '$.Requestor', 9 userid VARCHAR2(10) path '$.User', 10 center VARCHAR2(16) path '$.CostCenter' 11 ) m 12 WHERE po_number > 1600 and PO_Number < 1605;
  • 15. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | REFERENCES • NULL on ERROR – The Default – Return NULL instead of raising the error • ERROR on ERROR – Raise the error (no special handling) • TRUE ON ERROR – In JSON_EXISTS – Return TRUE instead of raising the error eProseed Confidential15 ERROR Handling
  • 16. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | REFERENCES • JSON_TABLE, JSON_QUERY – WITHOUT WRAPPER • Default, no change • Raise error, if scalar/multiple values in non JSON result – WITH WRAPPER • Wrap result as a JSON ARRAY [ ] – WITH CONDITIONAL WRAPPER • Wrap result as a JSON ARRAY [ ] • Don’t wrap result if scalar/multiple values in JSON result eProseed Confidential16 Un/conditional Wrapper
  • 17. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | REFERENCES eProseed Confidential17 WRAPPER Examples
  • 18. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | REFERENCES • JSON_TABLE – FORMAT JSON • Forces JSON_QUERY behavior • Therefore can have an explicit wrapper clause – Default • Projection like JSON_VALUE eProseed Confidential18 FORMAT JSON - Clause
  • 19. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | REFERENCES RESOURCES • XMLDB / JSON Developers Guide • HOWTO: Building a JSON Database API (1) • HOWTO: Building a JSON Database API (2) • HOWTO: Building a JSON Database API (3) • HOWTO: Building a JSON Database API (4) eProseed Confidential19 Where to go from here…
  • 20. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | REFERENCES RESOURCES • JSON_TABLE (syntax) • A WikiPedia JSON page • WikiPedia API (doc) • JSONView (JSON browser plugin) • UTL_HTTP and SSL (HTTPS) using Oracle Wallets eProseed Confidential20 Where to go from here…
  • 21. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | REFERENCES RESOURCES • Stanford - Introduction to Databases (JSON) • Eclipse JSON Editor Plugin • JSON Schema • Get Started With JSON • www.json-generator.com • JSON Datasets: www.data.gov eProseed Confidential21 Where to go from here…
  • 22. Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | eProseed Confidential22

Notas do Editor

  1. The agenda of today is as follows: First I will discuss the three types of mobile architecture that are available in the market today Then I will discuss very briefly how MAF supports these architectures Next on the agenda are how choosing a certain mobile architecture impacts your services, security and scalability. Finally three use cases are discussed to show what considerations led to what choice.
  2. The agenda of today is as follows: First I will discuss the three types of mobile architecture that are available in the market today Then I will discuss very briefly how MAF supports these architectures Next on the agenda are how choosing a certain mobile architecture impacts your services, security and scalability. Finally three use cases are discussed to show what considerations led to what choice.
  3. The agenda of today is as follows: First I will discuss the three types of mobile architecture that are available in the market today Then I will discuss very briefly how MAF supports these architectures Next on the agenda are how choosing a certain mobile architecture impacts your services, security and scalability. Finally three use cases are discussed to show what considerations led to what choice.