Alex Nuijten-JSON Takes The Database

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 36

JSON

Takes the Database


New Line Cinema

a
all.APEX 500+ technical experts 

helping peers globally
! @alexnuijten

nuijten.blogspot.com The Oracle ACE Program recognizes and 



rewards community members for their technical and
community contributions to the Oracle community

3 membership tiers

Nominate 

yourself or someone you
know:
For more details on Oracle ACE Program: ace.oracle.com/nominate
ace.oracle.com

Connect: aceprogram_ww@oracle.com Facebook.com/OracleACEs @oracleace


Oracle Database
Express Edition What is JSON?
21c

Can be any
JSON
data type

Data Exchange {"key":value}


Can be any
JSON String
{"name":"Jason Voorhees"}
data type
Number

Boolean

[list,of,things]
Null

Object

Array

String
{"name":"Jason Voorhees"}
String
{"name":"Jason Voorhees"}
Number
{"killCount": 42.3} Number
{"killCount": 42.3}
{"stillAlive": false}
Boolean
Boolean

Null
Null

Object
Object

Array Array

String
{"name":"Jason Voorhees"}
String
{"name":"Jason Voorhees"}
Number
{"killCount": 42.3}
{"stillAlive": false}
Number
{"killCount": 42.3}
{"stillAlive": false}
Boolean
{"maritalStatus":null} Boolean
{"maritalStatus":null}
{"mother":{"firstName":"Pamela",
Null
Null
"lastName":"Voorhees"}}

Object
Object

Array Array

String
{"name":"Jason Voorhees"}
Number
{"killCount": 42.3}
{"stillAlive": false}
Boolean
{"maritalStatus":null}
{"mother":{"firstName":"Pamela",
Null
"lastName":"Voorhees"}}
{"movies":["Friday 13th",
Object
"Friday 13th Part 2"
]}
Array

{
"page": 1,
"results": [
{
"adult": false,
"backdrop_path": "/j1PzqAMU4LzUnz60q9EEqmeX24n.jpg",
"genre_ids": [
27
],
"id": 13207,
"original_language": "en",
"original_title": "Friday the 13th",
"overview": "A group of young adults ....",
"popularity": 52.243,
"poster_path": "/88wlJ4teYlck4hJ2bnlxBrAVh0m.jpg",
ISO 8601
"release_date": "2009-02-11",
"title": "Friday the 13th",
"video": false,
"vote_average": 5.8,
"vote_count": 2082
},
...
],
"total_pages": 3,
"total_results": 50
}

yyyy-mm-dd
PdDThHmMsS PyYmM
P0DT6H23M42S
yyyy-mm-ddThh24:mi:ss.ssssssZ P2D P2Y
PT10S P3M
yyyy-mm-ddThh24:mi:ss.ssssss+00:00

$
Path
Expression
Photo by Andrew Neel on Unsplash

{
"page": 1,
"results": [
{
Object "adult": false,
"backdrop_path": "/j1PzqAMU4LzUnz60q9EEqme
Array "genre_ids": [
27
Descendant ],
"id": 13207,
"original_language": "en",
"original_title": "Friday the 13th",

$.<nonfunction step> $.page "overview": "A group of young adults ...."


"popularity": 52.243,
"poster_path": "/88wlJ4teYlck4hJ2bnlxBrAVh
"release_date": "2009-02-11",
"title": "Friday the 13th",
"video": false,
"vote_average": 5.8,
"vote_count": 2082
},
...
],
"total_pages": 3,
"total_results": 50
}

[
{ {
"title": "Friday the 13th", "adult": false,
"adult": false, "backdrop_path": "/j1PzqAMU4LzUnz60q9EEqmeX24n.j
"backdrop_path": "/j1PzqAMU4LzUnz60q9EEqmeX24n.jpg", "genre_ids": [
"genre_ids": [ 27
27 ],
], "id": 13207,
"popularity": 52.243, "original_language": "en",
"video": false, "original_title": "Friday the 13th",
$.results[*] "release_date": "2009-02-11",
"original_language": "en",
$.results[0] "overview": "A group of young adults ....",
"popularity": 52.243,
"overview": "A group of young adults ...", "poster_path": "/88wlJ4teYlck4hJ2bnlxBrAVh0m.jpg
"original_title": "Friday the 13th", "release_date": "2009-02-11",
"vote_count": 2082, "title": "Friday the 13th",
"id": 13207, "video": false,
"poster_path": "/88wlJ4teYlck4hJ2bnlxBrAVh0m.jpg", "vote_average": 5.8,
"vote_average": 5.8 "vote_count": 2082
}, }
...
]

[
{
"title": "Friday the 13th Part 2",
"adult": false,
{ "backdrop_path": "/80emEEa0svrT0YJDZLgLUu85ttp.jpg",
"genre_ids": [
"title": "Friday the 13th Part VIII: Jason Takes Manhattan", 27,
53
"adult": false, ],
"backdrop_path": "/bzpKFAp7Z9mIE4XPtsr6QsmG75O.jpg", "popularity": 37.299,
"video": false,
"genre_ids": [ "release_date": "1981-05-01",
"original_language": "en",
27, "overview": "Five years after the horrible bloodbath...",
"original_title": "Friday the 13th Part 2",
53 "vote_count": 1256,
], "id": 9725,
"poster_path": "/fhxx5U9LR2o4kXXPfJJIRkRCwFm.jpg",
"popularity": 33.92, "vote_average": 6.1

$.results[7] $.results[3,6]
},
"video": false, {
"release_date": "1989-07-28", "title": "Friday the 13th Part VI: Jason Lives",
"adult": false,
"original_language": "en", "backdrop_path": "/93tvkTtV6tQQiYhxhij9tuODNOq.jpg",
"genre_ids": [
"overview": "A group of students on ...", 27,
9648,
"original_title": "Friday the 13th Part VIII: Jason Takes Manhattan", 53
"vote_count": 777, ],
"popularity": 36.464,
"id": 10283, "video": false,
"release_date": "1986-08-01",
"poster_path": "/o8zLlANBDaPiW3SnDdKLIUd4jQQ.jpg", "original_language": "en",
"overview": "Determined to finish off the infamous ...",
"vote_average": 5 "original_title": "Friday the 13th Part VI: Jason Lives",
} "vote_count": 880,
"id": 10225,
"poster_path": "/3qyCfzwY418lbuFEaKX5rKxKlnJ.jpg",
"vote_average": 6.2
}
]

[
{
"title": "Friday the 13th Part VII: The New Blood",

{
"adult": false,
"backdrop_path": "/3KO6cs5qighEoA98CFo1u26hqh7.jpg",
"genre_ids": [
27,
53

"page": 1,
],
"popularity": 32.233,
"video": false,
"release_date": "1988-05-13",
"original_language": "en",

"results": [
"overview": "A young girl who possesses the power of telekinesis accidentally causes her father's death after a family dispute at Crystal Lake. Years later, when a doctor tries to exploit her abilities, her power becomes a hellish curse, and she unwittingly unchains the merciless, bloodthirsty Jason Voorhees from his watery grave.",
"original_title": "Friday the 13th Part VII: The New Blood",
"vote_count": 772,
"id": 10281,
"poster_path": "/xBjEL0k9Cz3QFjnpEK6c8b9Z51o.jpg",

{
"vote_average": 5.4
},
{
"title": "Crystal Lake Memories: The Complete History of Friday the 13th",
"adult": false,

"adult": false,
"backdrop_path": "/2xIWkbOn6Gsd7xEA9PtxvOJmZIa.jpg",
"genre_ids": [
99
],
"popularity": 15.315,

"backdrop_path": "/j1PzqAMU4LzUnz60q9EEqme
"video": false,
"release_date": "2013-09-13",
"original_language": "en",
"overview": "Taking inspiration from Peter M. Bracke's definitive book of the same name, this seven-hour documentary dives into the making of all twelve Friday the 13th films, with all-new interviews from the cast and the crew.",
"original_title": "Crystal Lake Memories: The Complete History of Friday the 13th",

"genre_ids": [
"vote_count": 75,
"id": 222724,
"poster_path": "/8ahclCu6uW0cF35Vywre1eFlKsR.jpg",
"vote_average": 7.9
},

27
{
"title": "His Name Was Jason: 30 Years of Friday the 13th",
"adult": false,
"backdrop_path": null,
"genre_ids": [

],
99
],
"popularity": 8.644,
"video": false,
"release_date": "2010-04-20",

"id": 13207,
"original_language": "en",
"overview": "A retrospective documentary about the groundbreaking horror series, Friday the 13th, featuring interviews with cast and crew from the twelve films spanning 3 decades.",
"original_title": "His Name Was Jason: 30 Years of Friday the 13th",
"vote_count": 66,
"id": 15004,

"original_language": "en",
"poster_path": "/tmHDi36QeGYLCOY6LBzkWDv2Spd.jpg",
"vote_average": 7
},
{
"title": "The Friday the 13th Chronicles",

"original_title": "Friday the 13th",


"adult": false,
"backdrop_path": "/gv8z1pgaHvdmyDweQcTkYHQuFEh.jpg",
"genre_ids": [
36,

$.results[8 to 14] $.results[0].adult


99,

"overview": "A group of young adults ...."


14
],
"popularity": 2.799,
"video": true,
"release_date": "2004-10-05",

"popularity": 52.243,
"original_language": "en",
"overview": "2004 docu-drama film franchise to Crystal Lake to Manhattan.",
"original_title": "The Friday the 13th Chronicles",
"vote_count": 4,
"id": 224276,

"poster_path": "/88wlJ4teYlck4hJ2bnlxBrAVh
"poster_path": "/gsrtudgPtgrtxoQoCP4CPRyv7Pl.jpg",
"vote_average": 8.3
},
{
"title": "The 13th Friday",

"release_date": "2009-02-11",
"adult": false,
"backdrop_path": "/8Z3fOocAgouE3qehJemHwIk3eKj.jpg",
"genre_ids": [
53,
27

"title": "Friday the 13th",


],
"popularity": 2.804,
"video": false,
"release_date": "2017-01-10",
"original_language": "en",

"video": false,
"overview": "Thrill seeking friends return to the place of the most terrifying killer.",
"original_title": "The 13th Friday",
"vote_count": 9,
"id": 480700,
"poster_path": "/9JizR6xY8xi2qSD3NNjkFEwz7I.jpg",

"vote_average": 5.8,
"vote_average": 4.2
},
{
"title": "Friday the 13th : The Conspiracy Begins",
"adult": false,

"vote_count": 2082
"backdrop_path": "/lTKTa2XGW2vzEWXwWs395KbVcs1.jpg",
"genre_ids": [
27,
9648,
53

},
],
"popularity": 1.96,
"video": true,
"release_date": "2019-09-26",
"original_language": "ko",

...
"overview": "A profiler and a detective track down the truth behind the mysterious events that happen on Friday 13th.",
"original_title": "Friday the 13th : The Conspiracy Begins",
"vote_count": 1,
"id": 636568,
"poster_path": "/hUiNEG3WLOLAwKhbzSXyS3GO6LB.jpg",

],
"vote_average": 1
},
{
"title": "Friday the 13th AGAIN!",
"adult": false,

"total_pages": 3,
"backdrop_path": null,
"genre_ids": [
27
],
"popularity": 0.719,

"total_results": 50
"video": false,
"release_date": "2003-01-01",
"original_language": "en",
"overview": "Four tourists run out of fuel at Camp Crystal Lake and meet a well known character ...",
"original_title": "Friday the 13th AGAIN!",

}
"vote_count": 1,
"id": 796032,
"poster_path": "/67UU8wiOTrGBvVSDPH4ZsUM2na3.jpg",
"vote_average": 2
}
]

{
"page": 1,
"results": [
{ {
"title": "Friday the 13th Part VIII: Jason Takes Manhattan", "adult": false,
"adult": false, "backdrop_path": "/j1PzqAMU4LzUnz60q9EEqme
"backdrop_path": "/bzpKFAp7Z9mIE4XPtsr6QsmG75O.jpg", "genre_ids": [
"genre_ids": [ 27
27, ],
53 "id": 13207,
], "original_language": "en",
"popularity": 33.92, "original_title": "Friday the 13th",

$.results[7].genre_ids[*] "video": false,


"release_date": "1989-07-28", $..title "overview": "A group of young adults ...."
"popularity": 52.243,
"original_language": "en", "poster_path": "/88wlJ4teYlck4hJ2bnlxBrAVh
"overview": "A group of students on ...", "release_date": "2009-02-11",
"original_title": "Friday the 13th Part VIII: Jason Takes Manhattan", "title": "Friday the 13th",
"vote_count": 777, "video": false,
"id": 10283, "vote_average": 5.8,
"poster_path": "/o8zLlANBDaPiW3SnDdKLIUd4jQQ.jpg", "vote_count": 2082
"vote_average": 5 },
} ...
],
"total_pages": 3,
"total_results": 50
}

[
"Friday the 13th",
"Friday the 13th",
"Friday the 13th: The Final Chapter",
"Friday the 13th Part 2",
"Friday the 13th: A New Beginning",
"Friday the 13th Part III",
"Friday the 13th Part VI: Jason Lives",
"Friday the 13th Part VIII: Jason Takes Manhattan",

$..title
"Friday the 13th Part VII: The New Blood",
$.<nonfunction step>
"Crystal Lake Memories: The Complete History of Friday the 13th",
"His Name Was Jason: 30 Years of Friday the 13th",
"The Friday the 13th Chronicles",
"The 13th Friday",
.<function step>
"Friday the 13th : The Conspiracy Begins",
"Friday the 13th AGAIN!",
"Friday the 13th: Halloween Night",
"Friday the 13th",
"Friday the 13th",
"Friday the 13th: Legacy",
"Brookside: Friday the 13th"
]

{
"page": 1,
"results": [
{
"adult": false,
"backdrop_path": "/j1PzqAMU4LzUnz60q9EEqmeX2
"genre_ids": [
27

number() ],
"id": 13207,

string() numberOnly() "original_language": "en",


"original_title": "Friday the 13th",

boolean() stringOnly() $.page.number() "overview": "A group of young adults ....",

date() booleanOnly() "popularity": 52.243,


"poster_path": "/88wlJ4teYlck4hJ2bnlxBrAVh0m
"release_date": "2009-02-11",
timestamp() "title": "Friday the 13th",
"video": false,
"vote_average": 5.8,
"vote_count": 2082
},
...
],
"total_pages": 3,
"total_results": 50
}

{ {
"title": "Friday the 13th Part VIII: Jason Takes Manhattan", "title": "Friday the 13th Part VIII: Jason Takes
"adult": false, "adult": false,
"backdrop_path": "/bzpKFAp7Z9mIE4XPtsr6QsmG75O.jpg", "backdrop_path": "/bzpKFAp7Z9mIE4XPtsr6QsmG75O.j
"genre_ids": [ "genre_ids": [
27, 27,
53 53
], ],

$.results[7] "popularity": 33.92,


"video": false, $.results[7] "popularity": 33.92,
"video": false,

.release_date.date() "release_date": "1989-07-28",


"original_language": "en", .video.boolean() "release_date": "1989-07-28",
"original_language": "en",
"overview": "A group of students on ...", "overview": "A group of students on ...",
"original_title": "Friday the 13th Part VIII: Jason Takes Manhattan", "original_title": "Friday the 13th Part VIII: Ja
"vote_count": 777, "vote_count": 777,
"id": 10283, "id": 10283,
"poster_path": "/o8zLlANBDaPiW3SnDdKLIUd4jQQ.jpg", "poster_path": "/o8zLlANBDaPiW3SnDdKLIUd4jQQ.jpg
"vote_average": 5 "vote_average": 5
} }

$.<nonfunction step> numberOnly()


.<filter condition> stringOnly()
.<function step> booleanOnly()

&&
Relative Path ||
!(<condition>)
Expression exists ()
==
!=
<>
<
?(@.<condition>) <=
>
>=
has substring
starts with
like
like_regex
eq_regex
in (<val>,<val>)

{
"page": 2,
"results": [
{ {
"title": "Friday The 13th: Extraction", "title": "Friday the 13th Part VIII: Jason Takes Ma
"adult": false, "adult": false,
"backdrop_path": null, "backdrop_path": "/bzpKFAp7Z9mIE4XPtsr6QsmG75O.jpg"
"genre_ids": [], "genre_ids": [
Whole
"popularity": 0.6, Results Array 27,
Document
"video": false, 53
"release_date": "", ],
"original_language": "en", $.results[*] "popularity": 33.92,
$?(@.page == 2) "overview": "When private military company,
?(@.title Chase
"original_title": "Friday The 13th: Extraction",
== "Friday
Defense the
International,
13th Part VIII:
learns",
Jason Takes Manhattan")
"video": false,
"release_date": "1989-07-28",
"vote_count": 0, "original_language": "en",
"id": 986506, "overview": "A group of students on a graduation cr
"poster_path": "/9ERIedMGX6RrkcAfKMohkGupmnz.jpg", "original_title": "Friday the 13th Part VIII: Jason
"vote_average": 0 "vote_count": 777,
}, "id": 10283,
"poster_path": "/o8zLlANBDaPiW3SnDdKLIUd4jQQ.jpg",
... "vote_average": 5
], }
"total_pages": 3,
"total_results": 50
}

{
"title": "Friday the 13th Part VIII: Jason Takes Manhattan", {
"adult": false, "title": "Friday the 13th",
"backdrop_path": "/bzpKFAp7Z9mIE4XPtsr6QsmG75O.jpg", "adult": false,
"genre_ids": [ "backdrop_path": null,
Results Array 27, "genre_ids": [],
53 "popularity": 0.6,
], "video": false,
"popularity": 33.92, "release_date": "1953-01-01",
$.results[*]
"video": false, $.results[*]?(@.original_language =="hu") "original_language": "hu",
?(@.title like "%Manhattan%")
"release_date": "1989-07-28", "overview": "Hungarian short movie about superstiti
"original_language": "en", "original_title": "Péntek 13",
"overview": "A group of students on a graduation cruise bound for Manhattan", "vote_count": 0,
"original_title": "Friday the 13th Part VIII: Jason Takes Manhattan", "id": 724382,
"vote_count": 777, "poster_path": "/4bmF0oSKj1Uj6pfGzVqvwr0ehbM.jpg",
"id": 10283, "vote_average": 0
"poster_path": "/o8zLlANBDaPiW3SnDdKLIUd4jQQ.jpg", }
"vote_average": 5
}

$?(@.results[*].original_language == "hu" && @.results[*].id == 655860)

{
"page": 2,
"results": [
{
Whole "title": "Friday The 13th: Extraction",
Document "adult": false,
"backdrop_path": null,
"genre_ids": [],
"popularity": 0.6,
$?(@.results[*].original_language == "hu" && @.results[*].id == 655860) "video": false,
"release_date": "",
"original_language": "en",
"overview": "When private military company, Chase Defense International, learns",
"original_title": "Friday The 13th: Extraction",
"vote_count": 0,
"id": 986506,
"poster_path": "/9ERIedMGX6RrkcAfKMohkGupmnz.jpg",
"vote_average": 0
},

...
],
"total_pages": 3,
"total_results": 50
}

$?(@.results[*].original_language == "hu" && @.results[*].id == 655860) $?(@.results[*].original_language == "hu" && @.results[*].id == 655860)

$.results[*]?(@.original_language == "hu" && @.id == 655860)


{ {
"title": "Friday the 13th", "title": "Evil Empire: Friday the 13th Chapter 2",
"adult": false, "adult": false,
"backdrop_path": null, "backdrop_path": null,
"genre_ids": [], "genre_ids": [],
"popularity": 0.6, "popularity": 0.6,
"video": false, "video": false,
"release_date": "1953-01-01", "release_date": "",
NULL
"original_language": "hu", "original_language": "ko",
"overview": "Hungarian short ...", "overview": "A series of murders called...",
"original_title": "Péntek 13", "original_title": "악의제국: 13일의금요일 챕터2",
"vote_count": 0, "vote_count": 0,
"id": 724382, "id": 655860,
"poster_path": "/4bmFehbM.jpg", "poster_path": "/nLhe38vA.jpg",
"vote_average": 0 "vote_average": 0
} }

{
"title": "Friday The 13th: Extraction",
"adult": false,
$.results[0]?(@.backdrop_path is null) "backdrop_path": null,
$.results[0]?(@.backdrop_path == null) "genre_ids": [],
$.results[0]?(@.backdrop_path == "") "popularity": 0.6,

Storing
"video": false,
"release_date": "",
"original_language": "en",
"overview": "When private military company, Chase Defense International, …",
"original_title": "Friday The 13th: Extraction",
$.results[0]?(@.release_date == "") "vote_count": 0,
$.results[0]?(@.release_date == null) "id": 986506,
"poster_path": "/9ERIedMGX6RrkcAfKMohkGupmnz.jpg",
"vote_average": 0
}

Photo by Jon Butterworth on Unsplash

JSON

}
SQL> create table t
VARCHAR2
2 (json_data varchar2(4000)
3 );
CLOB
Constraint: is json Table created.

BLOB

SQL> alter table t


SQL> insert into t
2 add constraint json_valid
2 values ('{"killer":"Jason Voorhees"}')
3 check (json_data is json)
3 /
4 /
1 row created.
Table altered.

is json JSON Data


SQL> insert into t
2* values ('definitely not JSON');

Error starting at line : 1 in command -


insert into t Staging Table
values ('definitely not JSON')
Error report - is not json
ORA-02290: check constraint (ALX.JSON_VALID) violated
Non-JSON Data

SQL> select *
2 from regular
3 where some_data is json
4 /

SOME_DATA SQL> select *


2
-------------------------------------------------------------------------------------------------- from regular
{"FRIDAY13TH" : { 3 where some_data is not json
"MOVIES" : [ 4 /
{"TITLE":"Friday the 13th", "RELEASEDATE":"May 9, 1980","BUDGET":"$550,000"},
{"TITLE":"Friday the 13th Part 2", "RELEASEDATE":"April 30, 1981","BUDGET":"$1,250,000"}, SOME_DATA
--------------------------------------------------------------
{"TITLE":"Friday the 13th Part III", "RELEASEDATE":"August 13, 1982","BUDGET":"$2,500,000"},
Friday the 13th is an American horror franchise that comprises twelve slasher films, a
{"TITLE":"Friday the 13th: The Final Chapter", "RELEASEDATE":"April 13, 1984","BUDGET":"$2,600,000"},
television show, novels, comic bo
{"TITLE":"Friday the 13th: A New Beginning", "RELEASEDATE":"March 22, 1985","BUDGET":"$2,200,000"},
oks, and tie-in merchandise.
{"TITLE":"Friday the 13th Part VI: Jason Lives", "RELEASEDATE":"August 1, 1986","BUDGET":"$3,000,000"},
{"TITLE":"Friday the 13th Part VII: The New Blood", "RELEASEDATE":"May 13, 1988","BUDGET":"$2,800,000"},
{"TITLE":"Friday the 13th Part VIII: Jason Takes Manhattan", "RELEASEDATE":"July 28, 1989","BUDGET":"$5,000,000"},
{"TITLE":"Jason Goes to Hell: The Final Friday", "RELEASEDATE":"August 13, 1993","BUDGET":"$3,000,000"},
{"TITLE":"Jason X", "RELEASEDATE":"April 26, 2002","BUDGET":"$14,000,000"},
{"TITLE":"Freddy vs. Jason", "RELEASEDATE":"August 15, 2003","BUDGET":"$25,000,000"},
{"TITLE":"Friday the 13th", "RELEASEDATE":"February 13, 2009","BUDGET":"$19,000,000"}
]}}

Only if “IS JSON”


Check Constraint
Is present
Extracting ... or JSON
data type

SQL/JSON select t.json_data.killer

/
from test t

KILLER
--------------------------------
Jason Voorhees

Photo by Daniel Jensen on Unsplash

select t.json_data.killer
alter table test
from test t
drop constraint json_chk
/
/
ORA-00904: "T"."JSON_DATA"."KILLER": invalid identifier

18c
with test as
(select treat (json_data as json) as js
from t
) create table movies
select tst.js.killer (pagenr number not null
from test tst ,all_movies json
/ );

KILLER
-------------------------------- https://api.themoviedb.org/3/search/movie
Jason Voorhees

SQL> select pagenr SQL> select m.all_movies.page


2 ,all_movies 2 ,m.all_movies.page.number() as pagenr
3 from movies 3 from movies m
4* / 4* /

PAGENR ALL_MOVIES PAGE PAGENR


---------- -------------------------------------------------- ----- ----------
1 {"page":1,"results":[{"title":"Friday the 13th","a 1 1
2 {"page":2,"results":[{"title":"Friday The 13th: Ex 2 2
3 {"page":3,"results":[{"title":"Evil Empire: Friday 3 3

SQL> select m.all_movies


SQL> select m.all_movies.results[*].title as titles 2 .results[0 to 2]
2 from movies m 3 .title as titles
3* / 4 from movies m
5* /
TITLES
-------------------------------------------------- TITLES
["Friday the 13th","Friday the 13th","Friday the 1...] --------------------------------------------------
["Friday The 13th: Extraction","Friday the 13th: D...] ["Friday the 13th","Friday the 13th","Friday the 1...]
["Evil Empire: Friday the 13th Chapter 2","I Screa...] ["Friday The 13th: Extraction","Friday the 13th: D...]
["Evil Empire: Friday the 13th Chapter 2","I Screa...]

SQL> select m.all_movies.results[*].release_date.date() as release_dates


SQL> select m.all_movies.results[*].release_date as release_dates
2 from movies m
2 from movies m
3* /
3* /
RELEASE_DATES
RELEASE_DATES
--------------------------------------------------
--------------------------------------------------
["2009-02-11","1980-05-09","1984-04-13","1981-05-0
["","2019-12-13","2005-07-13","2020-12-24","","200
["2019-12-12","2001-12-23","2003-10-01","1989-06-0

SQL> select m.all_movies.results[0].release_date.date() as release_dates SQL> select m.all_movies.results[*].backdrop_path as backdrops


2 from movies m 2 from movies m
3* / 3* /

RELEASE_DATES BACKDROPS
-------------------------------------------------- --------------------------------------------------
11-FEB-09 ["/j1PzqAMU4LzUnz60q9EEqmeX24n.jpg","/e5Z35sfdHd3b...]
[null,null,null,null,null,null,null,null,null,null...]
12-DEC-19 ["/mqCI7qblcDhTGPxDZ5VHW97d3fF.jpg",null,null,"/r4...]

SQL> select m.all_movies


2 .results[*]?(@.title == 'Friday the 13th: Nine Lives')
3 .title as title
4 from movies m
5* /

Error starting at line : 1 in command -


select m.all_movies
.results[*]?(@.title == 'Friday the 13th: Nine Lives')
.title as title
from movies m

Error at Command Line : 2 Column : 20


Error report -

JSON_VALUE
SQL Error: Missing IN or OUT parameter at index:: 1

Must target scalar JSON value


SQL> select m.pagenr SQL> select m.pagenr
2 ,json_value (m.all_movies 2 ,json_value (m.all_movies
3 ,'$.results[0].title' 3 ,'$.results[*].title'
4 ) as first_title 4 ) as first_title
5 from movies m 5 from movies m
6* / 6* /
Returns NULL on Error
PAGENR FIRST_TITLE PAGENR FIRST_TITLE
---------- -------------------------------------------------- ---------- --------------------------------------------------
1 Friday the 13th 1
2 Friday The 13th: Extraction 2
3 Evil Empire: Friday the 13th Chapter 2 3

SQL> select m.pagenr


2 ,json_value (m.all_movies
SQL> select m.pagenr
3 ,'$.results[*].title'
2 ,json_value (m.all_movies
4 error on error
3 ,'$.results[*]
5 ) as first_title
4 ?(@.title == "Friday the 13th: The Final Chapter")
6 from movies m
5 .release_date'
7* /
6 ) as release_date
7 from movies m
Error starting at line : 1 in command -
8* /
select m.pagenr
,json_value (m.all_movies
PAGENR RELEASE_DATE
,'$.results[*].title'
---------- -------------------------
error on error
1 1984-04-13
) as first_title
2
from movies m
3
Error report -
ORA-40470: JSON_VALUE evaluated to multiple values

SQL> select m.pagenr


SQL> select m.pagenr
2 ,json_value (m.all_movies
2 ,json_value (m.all_movies
3 ,'$.results[*]
3 ,'$.results[*]
4 ?(@.title == "Friday the 13th: The Final Chapter")
4 ?(@.title == "Friday the 13th: The Final Chapter")
5 .release_date'
5 .release_date.date()'
6 returning date
6 ) as release_date
7 ) as release_date
7 from movies m
8 from movies m
8* /
9* /
PAGENR RELEASE_DATE
PAGENR RELEASE_DATE
---------- -------------------------
---------- -------------------------
1 13-APR-84
1 13-APR-84
2
2
3
3

SQL> select m.pagenr


2 ,json_value (m.all_movies
3 ,'$.results[0]
4 .overview' SQL> select m.pagenr
5 ) as overviews 2 ,json_value (m.all_movies
6 from movies m Returns 3 ,'$.results[0]
7* / Varchar2(4000) 4 .overview'
5 returning varchar2(45)
PAGENR OVERVIEWS 6 ) as overviews
---------- ---------------------------------------------------------------------------------------------------- 7 from movies m
1 A group of young adults visit a boarded up campsite named Crystal Lake where they soon encounter the 8* /
mysterious Jason Voorhees and his deadly intentions.
PAGENR OVERVIEWS
2 When private military company, Chase Defense International, learns of a massacre involving a search ---------- ---------------------------------------
and rescue party near Crystal Lake, the company's CEO takes a personal interest in apprehending the 1
masked killer--though her intentions may be less than admirable… 2
3
3 A series of murders called 'the suicide syndrome' occurs everywhere at the same time and Phillip and
Cheong-ha, who have been investigating the cases, disappear.

SQL> select m.pagenr


2 ,json_value (m.all_movies
3 ,'$.results[0]
4 .overview'
SQL> select json {'title' :'Friday the 13th: 🧟' } as iconic
5 returning varchar2(45) truncate
2 from dual
6 ) as overviews
3* /
7 from movies m
8* /
ICONIC
-------------------------------
PAGENR OVERVIEWS
---------- -------------------------------------------------- {"title":"Friday the 13th: 🧟"}
1 A group of young adults visit a boarded up ca
2 When private military company, Chase Defense
3 A series of murders called 'the suicide syndr

SQL> with scary as (


2 select json {'title' :'Friday the 13th: 🧟' } as iconic
3 from dual
4 )
5 select json_value (s.iconic
6 ,'$.title'
7 returning varchar2 ascii
8
9
10* /

ESCAPED
) as escaped
from scary s

-------------------------------------------
JSON_QUEry
Friday the 13th: \uD83E\uDDDF\u2642\uFE0F

One or More Values;


Retrieve Fragments of JSON

SQL> select m.pagenr SQL> select m.pagenr


2 ,json_query (m.all_movies 2 ,json_query (m.all_movies
3 ,'$.results[0].title' 3 ,'$.results[*].title'
4 ) as first_title 4 ) as all_titles
5 from movies m 5 from movies m
6* / 6* /

PAGENR FIRST_TITLE PAGENR ALL_TITLES


---------- -------------------------------------------------- ---------- ---------------------------------------------
1 "Friday the 13th" 1 null
2 "Friday The 13th: Extraction" 2 null
3 "Evil Empire: Friday the 13th Chapter 2" 3 null

JSON

SQL> select m.pagenr


2 ,json_query (m.all_movies
3 ,'$.results[*].title' SQL> select json_query (m.all_movies
4 error on error 2 ,'$.results[*].title'
5 ) as all_titles 3 with conditional array wrapper
6 from movies m 4 ) as all_titles
7* / 5 from movies m
6* /
Error starting at line : 1 in command -
select m.pagenr ALL_TITLES
,json_query (m.all_movies ------------------------------------------------------------------------------------------
,'$.results[*].title' ["Friday the 13th","Friday the 13th","Friday the 13th: The Final Chapter",...]
error on error
) as all_titles ["Friday The 13th: Extraction","Friday the 13th: Death Curse","Maroon 5: Live - Friday...]
from movies m
Error report - ["Evil Empire: Friday the 13th Chapter 2","I Screamed When I Knew What You Did in Fri..]
ORA-40480: result cannot be returned without array wrapper

SQL> select json_query (m.all_movies


2 ,'$.results[0]'
3 returning varchar2 pretty
4 ) as pretty_format
5 from movies m
6 where m.pagenr = 3
7* /

PRETTY_FORMAT
--------------------------------------------------------
{
"title" : "Evil Empire: Friday the 13th Chapter 2",
JSON_table
"adult" : false,
"backdrop_path" : "/mqCI7qblcDhTGPxDZ5VHW97d3fF.jpg",
"genre_ids" :
[
28,
27,
9648,

SQL> select m.pagenr


2 ,a.*
SQL> select m.pagenr
2 ,a.*
18c
3 from movies m 3 from movies m
4 cross 4 cross
5 apply json_table (m.all_movies 5 apply json_table (m.all_movies
6 ,'$.results[*]' 6 ,'$.results[*]'
7 columns ( 7 columns (
8 original_title varchar2(180) path '$.original_title' 8 original_title varchar2(180) path original_title
9 ,original_language varchar2(2) path '$.original_language' 9 ,original_language varchar2(2) path original_language
10 )) a 10 )) a
11* / 11* /

PAGENR ORIGINAL_TITLE OR PAGENR ORIGINAL_TITLE OR


---------- -------------------------------------------------- -- ---------- -------------------------------------------------- --
1 Friday the 13th en 1 Friday the 13th en
1 Friday the 13th en 1 Friday the 13th en
1 Friday the 13th: The Final Chapter en 1 Friday the 13th: The Final Chapter en
1 Friday the 13th Part 2 en 1 Friday the 13th Part 2 en
1 Friday the 13th: A New Beginning en 1 Friday the 13th: A New Beginning en
1 Friday the 13th Part III en 1 Friday the 13th Part III en
1 Friday the 13th Part VI: Jason Lives en 1 Friday the 13th Part VI: Jason Lives en
1 Friday the 13th Part VIII: Jason Takes Manhattan en 1 Friday the 13th Part VIII: Jason Takes Manhattan en

SQL> select m.pagenr SQL> select m.pagenr


2 ,a.* 2 ,a.*
3 from movies m 3 from movies m
4 cross 4 cross
5 apply json_table (m.all_movies 5 apply json_table (m.all_movies
6 ,'$.results[*]' 6 ,'$.results[*]'
7 columns ( 7 columns (
8 original_title varchar2(180) path Original_title 8 original_title
9 ,original_language varchar2(2) path Original_language 9 ,original_language
10 )) a 10 )) a
11* / 11* /
Returns VARCHAR2(4000)
PAGENR ORIGINAL_TITLE OR PAGENR ORIGINAL_TITLE ORIGI
---------- -------------------------------------------------- -- ---------- -------------------------------------------------- -----
1 1 Friday the 13th en
1 1 Friday the 13th en
1 1 Friday the 13th: The Final Chapter en
1 1 Friday the 13th Part 2 en
1 1 Friday the 13th: A New Beginning en
1 1 Friday the 13th Part III en
1 1 Friday the 13th Part VI: Jason Lives en
1 1 Friday the 13th Part VIII: Jason Takes Manhattan en

JSON exists SQL> select *


2 from movies m
3 where json_exists (m.all_movies
4 ,'$.page'
5 )
6* /

PAGENR ALL_MOVIES
---------- --------------------------------------------------
1 {"page":1,"results":[{"title":"Friday the 13th","a
2 {"page":2,"results":[{"title":"Friday The 13th: Ex
3 {"page":3,"results":[{"title":"Evil Empire: Friday

SQL> select *
SQL> select *
2 from movies m
2 from movies m
3 where json_exists (m.all_movies
3 where json_exists (m.all_movies
4 ,'$.results[*]?(@.title =="Friday the 13th")'
4 ,'$?(@.page == 1)'
5 )
5 )
6* /
6* /
PAGENR ALL_MOVIES
PAGENR ALL_MOVIES
---------- --------------------------------------------------
---------- --------------------------------------------------
1 {"page":1,"results":[{"title":"Friday the 13th","a
1 {"page":1,"results":[{"title":"Friday the 13th","a
2 {"page":2,"results":[{"title":"Friday The 13th: Ex

SQL> select m.pagenr


2 ,a.*
3 from movies m
4 cross
5 apply json_table (m.all_movies
6 ,'$.results[*]'
7 columns (
8 original_title SQL> select m.pagenr
9 ,original_language 2 ,a.*
10 )) a 3 from movies m
11 where json_exists (m.all_movies 4 cross
12 ,'$.results[*]?(@.original_language != "en")' 5 apply json_table (m.all_movies
13 ) 6 ,'$.results[*]?(@.original_language != "en")'
14* / 7 columns (
8 title varchar2(135)
PAGENR ORIGINAL_TITLE ORIGI 9 ,original_title varchar2(180)
---------- -------------------------------------------------- ----- 10 )) a
1 Friday the 13th en 11* /
1 Friday the 13th en
1 Friday the 13th: The Final Chapter en
1 Friday the 13th Part 2 en
1 Friday the 13th: A New Beginning en
1 Friday the 13th Part III en
1 Friday the 13th Part VI: Jason Lives en
1 Friday the 13th Part VIII: Jason Takes Manhattan en

PAGENR TITLE ORIGINAL_TITLE


---------- -------------------------------------------------- --------------------------------------------------
1 Friday the 13th : The Conspiracy Begins Friday the 13th : The Conspiracy Begins
2 Jason Rising: A Friday the 13th Fanfilm Jason Rising: A Friday the 13th Fanfilm
2 Friday the 13th Péntek 13
2 Friday the 13th II Petak 13. II
2 Evil Empire: Friday the 13th Chapter 2 악의제국: 13일의금요일 챕터2
3 Evil Empire: Friday the 13th Chapter 2 악의제국: 13일의금요일 챕터2
3 I Screamed When I Knew What You Did in Friday the Entrei em Pânico ao Saber o Que Vocês Fizeram na
13th of Last Summer Sexta-feira 13 do Verão Passado

3 I Scream When I Knew What You Did in Friday the Entrei em Pânico ao Saber o que Vocês Fizeram na
13th of Last Summer Part 2 - I Saw the Hour of the Sexta-feira 13 do Verão Passado Parte 2 - A Hora
Return of the Revenge in Halloween da Volta da Vingança dos Jogos Mortais de
Halloween

8 rows selected.

{"killer":"Jason Voorhees"}

{
"killer":"Jason Voorhees"
}

{
"killer"
:"Jason Voorhees”
}

Comparing

drop table t purge insert into t


/ values ('{"killer":"Jason Voorhees"}'
,'{
create table t "killer":"Jason Voorhees"
(data1 varchar2(4000) }'
,data2 varchar2(4000) )
) /

select * drop table t purge


from t /
where json_equal (data1, data2)
/ create table t
(data1 varchar2(4000)
DATA1 DATA2
------------------------------------- -------------------------------------
,data2 blob
{"killer" : "Jason Voorhees"} {"killer" : "Jason Voorhees"} )

insert into t select *


values ('{"killer":"Jason Voorhees"}' from t
,utl_raw.cast_to_raw where json_equal (data1, data2)
('{ /
"killer":"Jason Voorhees"
DATA1 DATA2
}') ------------------------------------- -------------------------------------
) {"killer" : "Jason Voorhees"} 7B2274686973223A2274686174227D

Trivia
Who was the Killer in the First Movie?
Changing
Photo by Pedro Figueras: https://www.pexels.com/photo/person-s-hand-touching-wall-626163/

{
"page": 1,
"results": [ "Original"
{
"title": "Friday the 13th",
"adult": false,
"backdrop_path": "/e5Z35sfdHd3bnUdrzKPEvgcx4Db.jpg",
"genre_ids": [

Pamela ],
27

"popularity": 46.026,
"video": false,
"release_date": "1980-05-09",

Voorhees "original_language": "en",


"overview": "Camp counselors are stalked and murdered by an unknown...",
"original_title": "Friday the 13th",
"vote_count": 2261,
"id": 4488,
"poster_path": "/HzrPn1gEHWixfMOvOehOTlHROo.jpg",
"vote_average": 6.4
},{}{}{}{} "killer" : "Pamela Voorhees"
],
"total_pages": 3,
"total_results": 50
By Source, Fair use, https://en.wikipedia.org/w/index.php?curid=21788251 }

{ select json_transform (m.all_movies


"Original": [ ,remove '$.results[*]?(@.id != 4488)'
{ ,keep '$.results[*].title'
"title": "Friday the 13th", ,'$.results[*].release_date'
"release_date": "1980-05-09", ,'$.results[*].original_language'
"original_language": "en", ,'$.results[*].original_title'
"original_title": "Friday the 13th", ,'$.results[*].id'
"id": 4488, ,set '$.results[*].killer' = 'Pamela Voorhees'
"killer": "Pamela Voorhees" ,rename '$.results' = 'Original'
} )
] from movies m
} where m.pagenr = 1;

update movies
set all_movies
= json_transform (m.all_movies
,remove '$.results[*]?(@.id != 4488)'
,keep '$.results[*].title'
,'$.results[*].release_date'
,'$.results[*].original_language'
,'$.results[*].original_title'
,'$.results[*].id'
,set '$.results[*].killer' = 'Pamela Voorhees'
,rename '$.results' = 'Original'
Generate
)
where m.pagenr = 1;

Photo by Mathew MacQuarrie on Unsplash

{
"Friday13th": [
{
"1923": [
{
SQL> select id "original_title": "Friday the 13th",
2 ,release_date "release_date": "1923-02-01T00:00:00",
3 ,original_title "original_language": "en"
4 from rel_movies }
5* / ]
},
ID RELEASE_D ORIGINAL_TITLE {
---------- --------- -------------------------------------------------- "1953": [
13207 11-FEB-09 Friday the 13th {
4488 09-MAY-80 Friday the 13th "original_title": "Friday the 13th",
9730 13-APR-84 Friday the 13th: The Final Chapter "release_date": "1953-05-07T00:00:00",
9725 01-MAY-81 Friday the 13th Part 2 "original_language": "en"
9728 13-AUG-82 Friday the 13th Part III },
9731 22-MAR-85 Friday the 13th: A New Beginning {
10225 01-AUG-86 Friday the 13th Part VI: Jason Lives "original_title": "Péntek 13",
10283 28-JUL-89 Friday the 13th Part VIII: Jason Takes Manhattan "release_date": "1953-01-01T00:00:00",
"original_language": "hu"
}
]
},

select json_arrayagg (
select json_object (original_title json_object (original_title
,release_date ,release_date
,original_language ,original_language
returning clob) returning clob)
from rel_movies returning clob)
from rel_movies
{"original_title":"Friday the 13th","release_date":"2009-02-11T00:00:00","origin
{"original_title":"Friday the 13th","release_date":"1980-05-09T00:00:00","origin
{"original_title":"Friday the 13th: The Final Chapter","release_date":"1984-04-1 [{"original_title":"Friday the 13th","release_date":"2009-02-11T00:00:00","origi
{"original_title":"Friday the 13th Part 2","release_date":"1981-05-01T00:00:00",
{"original_title":"Friday the 13th Part III","release_date":"1982-08-13T00:00:00
{"original_title":"Friday the 13th: A New Beginning","release_date":"1985-03-22T
{"original_title":"Friday the 13th Part VI: Jason Lives","release_date":"1986-08
{"original_title":"Friday the 13th Part VIII: Jason Takes Manhattan","release_da

select json_object (key nvl (to_char (release_date, 'yyyy'), 'unknown')


select json_object (key nvl (to_char (release_date, 'yyyy'), 'unknown')
value json_arrayagg (
value json_arrayagg (
json_object (original_title
json_object (original_title
,release_date
,release_date
,original_language
,original_language
returning clob)
returning clob)
returning clob)
returning clob)
returning clob)
returning clob)
from rel_movies
from rel_movies
group by to_char (release_date, 'yyyy')
Error at Command Line : 1 Column : 39
Error report -
SQL Error: ORA-00937: not a single-group group function {"1923":[{"original_title":"Friday the 13th","release_date":"1923-02-01T00:00:00
00937. 00000 - "not a single-group group function" {"1953":[{"original_title":"Friday the 13th","release_date":"1953-05-07T00:00:00
*Cause: {"1979":[{"original_title":"The Orphan","release_date":"1979-11-02T00:00:00","or
*Action: {"1980":[{"original_title":"Friday the 13th","release_date":"1980-05-09T00:00:00

select json_object (
'Friday13th' value
select json_arrayagg (
json_arrayagg (
json_object (key nvl (to_char (release_date, 'yyyy'), 'unknown')
json_object (key nvl (to_char (release_date, 'yyyy'), 'unknown')
value json_arrayagg (
value json_arrayagg (
json_object (original_title
json_object (original_title
,release_date
,release_date
,original_language
,original_language
returning clob)
returning clob)
returning clob)
returning clob)
returning clob)
returning clob)
returning clob)
returning clob)
from rel_movies
returning clob)
group by to_char (release_date, 'yyyy')
from rel_movies
group by to_char (release_date, 'yyyy')

[{"1923":[{"original_title":"Friday the 13th","release_date":"1923-02-01T00:00:0 {"Friday13th":[{"1923":[{"original_title":"Friday the 13th","release_date":"1923

{
"Friday13th": [
{
"1923": [
{
"original_title": "Friday the 13th",
"release_date": "1923-02-01T00:00:00",
"original_language": "en"
}
]
},
{
"1953": [
{
Oracle Database 21c
"original_title": "Friday the 13th",
"release_date": "1953-05-07T00:00:00",
"original_language": "en"
},
{
"original_title": "Péntek 13",
"release_date": "1953-01-01T00:00:00",
"original_language": "hu"
}
]
},

Curly
Brac
kets
select json_arrayagg (
select json {original_title json {original_title
,release_date ,release_date
,original_language ,original_language
} }
from rel_movies )
from rel_movies

{"original_title":"Friday the 13th","release_date":"2009-02-11T00:00:00","origin


{"original_title":"Friday the 13th","release_date":"1980-05-09T00:00:00","origin
{"original_title":"Friday the 13th: The Final Chapter","release_date":"1984-04-1 [{"original_title":"Friday the 13th","release_date":"2009-02-11T00:00:00","origi
{"original_title":"Friday the 13th Part 2","release_date":"1981-05-01T00:00:00",
{"original_title":"Friday the 13th Part III","release_date":"1982-08-13T00:00:00
{"original_title":"Friday the 13th: A New Beginning","release_date":"1985-03-22T
{"original_title":"Friday the 13th Part VI: Jason Lives","release_date":"1986-08
{"original_title":"Friday the 13th Part VIII: Jason Takes Manhattan","release_da

select json_arrayagg (
select json {nvl (to_char (release_date, 'yyyy'), 'unknown')
json {nvl (to_char (release_date, 'yyyy'), 'unknown')
value
value
json_arrayagg (
json_arrayagg (
json {original_title
json {original_title
,release_date
,release_date
,original_language
,original_language
}
}
)}
)})
from rel_movies
from rel_movies
group by to_char (release_date, 'yyyy')
group by to_char (release_date, 'yyyy')

{"1923":[{"original_title":"Friday the 13th","release_date":"1923-02-01T00:00:00


{"1953":[{"original_title":"Friday the 13th","release_date":"1953-05-07T00:00:00
{"1979":[{"original_title":"The Orphan","release_date":"1979-11-02T00:00:00","or
{"1980":[{"original_title":"Friday the 13th","release_date":"1980-05-09T00:00:00 [{"1923":[{"original_title":"Friday the 13th","release_date":"1923-02-01T00:00:0

select json {'Friday13th' value


json_arrayagg ( SQL> select json {OriGinAl_tiTle}
json {nvl (to_char (release_date, 'yyyy'), 'unknown') 2 from rel_movies
value 3* /
json_arrayagg (
json {original_title JSON{ORIGINAL_TITLE}
,release_date -------------------------------------------------------
,original_language {"OriGinAl_tiTle":"Friday the 13th"}
} {"OriGinAl_tiTle":"Friday the 13th"}
)})} {"OriGinAl_tiTle":"Friday the 13th: The Final Chapter"}
from rel_movies {"OriGinAl_tiTle":"Friday the 13th Part 2"}
group by to_char (release_date, 'yyyy')

{"Friday13th":[{"1923":[{"original_title":"Friday the 13th","release_date":"1923

Squ
are
Brac
kets
SQL> select json [{'title' : original_title}] SQL> select json {*}
2 from rel_movies 2 from rel_movies
3* / 3* /

JSON[{'TITLE':ORIGINAL_TITLE}] JSON{*}
----------------------------------------------- -----------------------------------------------------------
[{"title":"Friday the 13th"}] {"ID":13207,"RELEASE_DATE":"2009-02-11T00:00:00","ORIGINAL_TITLE":"Friday the
[{"title":"Friday the 13th"}] {"ID":4488,"RELEASE_DATE":"1980-05-09T00:00:00","ORIGINAL_TITLE":"Friday the
[{"title":"Friday the 13th: The Final Chapter"}] {"ID":9730,"RELEASE_DATE":"1984-04-13T00:00:00","ORIGINAL_TITLE":"Friday the 13th: The
[{"title":"Friday the 13th Part 2"}] {"ID":9725,"RELEASE_DATE":"1981-05-01T00:00:00","ORIGINAL_TITLE":"Friday

SQL> select json [*]


2 from rel_movies
SQL> select json [release_date, original_title] 3* /
2 from rel_movies
3* / Error starting at line : 1 in command -
select json [*]
JSON[RELEASE_DATE,ORIGINAL_TITLE] from rel_movies
-----------------------------------------
["2009-02-11T00:00:00","Friday the 13th"] Error at Command Line : 1 Column : 14
["1980-05-09T00:00:00","Friday the 13th"] Error report -
["1984-04-13T00:00:00","Friday the 13th: The Final Chapter"] SQL Error: ORA-00936: missing expression
["1981-05-01T00:00:00","Friday the 13th Part 2"] 00936. 00000 - "missing expression"
*Cause:
*Action:

SQL/JSON
Path Expressions Changing
Photo by Pedro Figueras: https://

Storing
Photo by Jon
Comparing
Generating
{ Questions?

You might also like