Jua*_*oza 1 oracle json oracle12c
拥有这样的JSON(我知道JSON不支持注释.在这种情况下用于说明这个想法):
{
"people": [
{ --// <-- index 0
"id": 100,
"name": "John Doe"
},
{ --// <-- index 1
"id": 101,
"name": "Jane Roe"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我们可以从数组中的特定元素中选择值,如下所示:
SELECT name
FROM JSON_TABLE(
'{
"people": [
{
"id": 100,
"name": "John Doe"
},
{
"id": 101,
"name": "Jane Roe"
},
]
}', '$.people[*]'
COLUMNS(
ID NUMBER PATH '$.id',
NAME VARCHAR2 PATH '$.name'
)
) info
WHERE info.id = 101
Run Code Online (Sandbox Code Playgroud)
结果:
NAME
--------
Jane Roe
Run Code Online (Sandbox Code Playgroud)
有没有办法在数组中获取元素索引?就像是:
SELECT array_index --// <-- how get the array index of the element found?
FROM JSON_TABLE(
--// ...
) info
WHERE info.id = 101
Run Code Online (Sandbox Code Playgroud)
结果:
ARRAY_INDEX
-----------
1
Run Code Online (Sandbox Code Playgroud)
可以使用Oracle 12c中的JSON支持执行类似的操作吗?
COLUMNS(
idx FOR ORDINALITY,
ID NUMBER PATH '$.id',
NAME VARCHAR2 PATH '$.name'
)
Run Code Online (Sandbox Code Playgroud)
应该适合你
| 归档时间: |
|
| 查看次数: |
525 次 |
| 最近记录: |