json路径中的oracle-ampersand
我有json数据,其中json路径中有符号和。我如何使用安培和。我试过这些东西,但都不管用- 1) 抵销 2) 逃逸符-\& 3) 使用双安培-&&json路径中的oracle-ampersand,json,oracle,oracle12c,Json,Oracle,Oracle12c,我有json数据,其中json路径中有符号和。我如何使用安培和。我试过这些东西,但都不管用- 1) 抵销 2) 逃逸符-\& 3) 使用双安培-&& SELECT id,array1 FROM ( select '{ "data": [ { "id": 2, "array1 & tr": "TEST", } ] }' AS JSON_DATA FROM DUAL ) I, json_table(
SELECT id,array1
FROM (
select '{
"data": [
{
"id": 2,
"array1 & tr": "TEST",
}
]
}' AS JSON_DATA
FROM DUAL
) I,
json_table(
i.JSON_DATA ,
'$.data[*]'
COLUMNS (
array1 varchar2(4000) FORMAT JSON path'$."array1 & tr"',
ID varchar2(4000) path '$."id"'
)
) a
ORA-40442:JSON路径表达式语法错误
从Oracle文档:
将“&”放在大括号{}之间
()
从另一个答案来看:
使用ASCII等效的符号和,以确保它被解释为字符串
"array1 " || chr(38) || " tr": "TEST",
我目前无法测试,但我发现这些答案与您的案例相符。来自Oracle文档:
将“&”放在大括号{}之间
()
从另一个答案来看:
使用ASCII等效的符号和,以确保它被解释为字符串
"array1 " || chr(38) || " tr": "TEST",
我目前无法测试它,但我发现这些答案与您的案例相符。我最终这样做了;请注意,使用unicode\u0026而不是chr(38):“FOO\u和uu-BAR”路径“$”FOO\u0026-BAR“我最后这样做了;请注意,使用unicode\u0026而不是chr(38):“FOO\u和_-BAR”路径“$”FOO\u0026-BAR“这是否回答了您的问题?不存在问题,我也在12.1.0.2版本中进行了尝试。你确定问题中的样本吗?谢谢@Barbaros的帮助。不,它在oracle 12c中对我不起作用。我已经做了一个变通方法,将“&”替换为“and”。感谢@Dortimer的帮助,我将“&”替换为“and”,这是否回答了您的问题?不存在问题,我也在12.1.0.2版本中进行了尝试。你确定问题中的样本吗?谢谢@Barbaros的帮助。不,它在oracle 12c中对我不起作用。我已经做了一个变通方法,将“&”替换为“and”。感谢@Dortimer的帮助,我将“&”替换为“and”
{}
这是针对Oracle文本的。不知道它是否在数据库中工作。这会导致错误“JSON路径表达式语法错误('$.”FOO“| | chr(38)| | | BAR“))JZN-00209:路径结束后出现意外字符”{}
这是针对Oracle文本的。不知道它是否在数据库中工作。这会导致错误“JSON路径表达式语法错误('$.“FOO”| | chr(38)| |“BAR”))JZN-00209:路径结束后出现意外字符”