SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

Tendances (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
 

En vedette

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
 

En vedette (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...
 

Similaire à 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
 

Similaire à 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
 

Plus 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
 

Plus 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...
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

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
 
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...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
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
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

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

Notes de l'éditeur

  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.