Oracle APEX调用Invoke API时遇ORA-40597 JSON路径语法错误求助
Oracle APEX 23.1+ 「Invoke API」流程触发ORA-40597错误的解决
问题场景
使用Oracle APEX 23.1+版本,通过「Invoke API」页面流程调用Simple HTTP REST Data Source(RDS)获取数据填充表单项时,触发如下错误:
ORA-40597: JSON path expression syntax error ('$.') JZN-00217: Key step contains unexpected characters at position 2
环境与配置细节
- API返回的JSON响应体结构:
{ "Body" : { "ResponseStatus" : { ... }, "isfMembInfo" : { "MemberFirstName" : "...", "MemberRank" : "...", "EmployeeNumber" : "..." } } }
- REST Data Source配置:行选择器设为
$.Body.isfMembInfo(已匹配JSON结构),列选择器直接使用对应键名(如MemberFirstName) - 页面流程配置:类型为「Invoke API」(加载前-页眉前),关联上述RDS,调用需
EmployeeIdentifier输入参数(来自页面项)的fetchSingleRowUserISFGET操作,添加输出参数映射到页面项(如MEMBERRANK对应P1_MEMBER_RANK)时触发错误
错误原因及解决步骤
修正输出参数的JSON路径
错误核心是输出参数的JSON路径被自动填充为不完整的$.,导致语法解析失败。- 进入流程的输出参数配置页,检查每个参数的「JSON路径」字段:
- 若基于RDS行选择器,直接使用相对路径(即列名,如
MemberRank)即可,APEX会自动结合行选择器拼接完整路径; - 也可填写完整绝对路径:
$.Body.isfMembInfo.MemberRank,避免路径截断。
- 若基于RDS行选择器,直接使用相对路径(即列名,如
- 进入流程的输出参数配置页,检查每个参数的「JSON路径」字段:
复用RDS预定义的输出参数
检查RDS中fetchSingleRowUserISF操作的输出参数配置,确保每个参数的JSON路径已与响应体结构匹配。在页面流程关联时,直接选择RDS预定义的输出参数,而非手动输入路径,减少人为错误。验证RDS数据解析有效性
使用APEX自带的「测试REST数据来源」功能,调用fetchSingleRowUserISF操作,确认返回的JSON数据能被正确解析,列选择器可正常提取对应字段。若测试正常,说明RDS配置无误,仅需修正页面流程的输出参数路径即可。
内容的提问来源于stack exchange,提问作者Sly Warden
相关产品推荐
相关产品推荐

