add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE agents_timesheet (
ID,
name,
health_check_record CHECK (health_check_record IS JSON),
"DATE",
clock_in,
clock_out
) AS
SELECT 1,
'AAA',
'{"mental":{"stress":"no", "depression":"no"},"physical":{"fever":"no", "flu":"no"}}',
DATE '2021-12-06',
INTERVAL '0 08:25:07' DAY(0) TO SECOND,
CAST(NULL AS INTERVAL DAY(0) TO SECOND)
FROM DUAL
UNION ALL
SELECT 2,
'BBB',
'{"mental":{"stress":"no", "depression":"no"},"physical":{"fever":"no", "flu":"yes"}}',
DATE '2021-12-06',
INTERVAL '0 08:26:12' DAY(0) TO SECOND,
CAST(NULL AS INTERVAL DAY(0) TO SECOND)
FROM DUAL
2 rows affected
SELECT a.id,
a.name,
j.*,
a."DATE",
a.clock_in,
a.clock_out
FROM agents_timesheet a
CROSS JOIN JSON_TABLE(
a.health_check_record,
'$'
COLUMNS (
mental_stress VARCHAR2(3) PATH '$.mental.stress',
mental_depression VARCHAR2(3) PATH '$.mental.depression',
physical_fever VARCHAR2(3) PATH '$.physical.fever',
physical_flu VARCHAR2(3) PATH '$.physical.flu'
)
) j
WHERE physical_flu = 'yes';
ID NAME MENTAL_STRESS MENTAL_DEPRESSION PHYSICAL_FEVER PHYSICAL_FLU DATE CLOCK_IN CLOCK_OUT
2 BBB no no no yes 06-DEC-21 +0 08:26:12.000000 null
SELECT a.id,
a.name,
j.*,
a."DATE",
a.clock_in,
a.clock_out
FROM agents_timesheet a
CROSS JOIN JSON_TABLE(
a.health_check_record,
'$?(EXISTS(@.physical.fever == "yes"))'
COLUMNS (
mental_stress VARCHAR2(3) PATH '$.mental.stress',
mental_depression VARCHAR2(3) PATH '$.mental.depression',
physical_fever VARCHAR2(3) PATH '$.physical.fever',
physical_flu VARCHAR2(3) PATH '$.physical.flu'
)
) j
WHERE physical_flu = 'yes';
ORA-40597: JSON path expression syntax error ('$?(EXISTS(@.physical.fever == "yes"))')
JZN-00229: Missing parenthesis in paranthetical expression
at position 10