I have created a table
CREATE TABLE json_data(
json_col VARCHAR2(1000),
CONSTRAINT must_be_json CHECK (json_col IS JSON )
)
Inserted Data into table
INSERT INTO json_data VALUES ('{ "abc" : { "fname" : "john" ,"lname" : "rambo" }}')
INSERT INTO json_data VALUES ('{ "abc" : { "fname" : "james" ,"lname" : "bond" }}')
Need to select value using below query
SELECT json_col FROM json_data
WHERE JSON_EXISTS(json_col, '$.abc')
AND JSON_EXISTS(json_col,'$?(@.abc.name == "john")')
works fine without problem, however I need to pass value "John" as parameter like..
SELECT json_col FROM json_data
WHERE JSON_EXISTS(json_col, '$.abc')
AND JSON_EXISTS(json_col,'$?(@.abc.name == :johnParam)'
where :johnParam is a parameter
its not taking as parameter, please help me how to pass :johnParam parameter with double quotes
JSON_EXISTSexpression?JSON_EXISTSat all. If you can, you could pass the entire expression as a parameter.AND JSON_EXISTS(json_col,:someParam)but some SO questions suggest this isn't possible eitherjson_exists(po_document, '$.PONumber?(@ > $d)' PASSING 1500 AS "d"). Perhaps you can use a parameter inPASSING, egPASSING :myParam AS "d")