Как фильтровать json в PLSQL?

Мои данные выглядят так:

CLUID                       EVENT_PAYLOAD                                                       STEP    
1998-06-22-23.58.16.792243  {"type":"page","name":"currentAccount/88095C45B7E1D68346905AA7B791F731D7F94715/new-transfer","source":"currentAccount/:id/new-transfer","data":{}}  currentAccount/:id/new-transfer
1997-08-25-18.52.07.994112  {"type":"page","name":"orders/sign/200831527425199","source":"orders/sign(/:orderIds)","data":{}}   orders/sign(/:orderIds)
2000-05-09-20.49.42.573031  {"type":"page","name":"currentAccount/33BF3B031E71719AD30C34588B5832CA8F1EC2D1/orders","source":"currentAccount/:id/orders","data":{}}  currentAccount/:id/orders
1998-07-21-20.50.04.641225  {"type":"event","name":"logout","source":"currentAccount/F2A81A2D982AD8D736E5461808CF8C33FDDC9EEC/transactions","data":{"category":"session","normalized":"currentAccount/:id/transactions","eventValue1":"manual"}}    logout

Я хочу выбрать только данные, для которых тип EVENT_PAYLOAD — «страница».

Я написал:

 SELECT CLUID, STEP--, b.type
 FROM VDS_OWNER.PROTO_BEAN_COUNTER_EVENTS_BASE2
 WHERE (JSON_TABLE(EVENT_PAYLOAD, '$'
                        COLUMNS (type VARCHAR2 PATH '$."type"')
                        )
        ) = 'page'

Помощь приветствуется. Спасибо!

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
0
130
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы правильно объявили столбец JSON, вы можете просто использовать запись через точку для доступа к значению JSON по ключу:

select cluid, step, e.event_payload.type
from VDS_OWNER.PROTO_BEAN_COUNTER_EVENTS_BASE2 e
where e.event_payload.type = 'page'

Кроме того, вы можете использовать json_value():

select cluid, step, json_value(e.event_payload, '$.type') as type
from mytable e
where json_value(e.event_payload, '$.type') = 'page'

Демо на DB Fiddle

Другие вопросы по теме