在Oracle APEX创建PUT方法REST端点遇555/405错误,求解决方案
Oracle APEX RESTful API PUT方法555/405错误排查方案
关于405错误
直接在浏览器访问URL返回405是正常行为:浏览器地址栏发起的是GET请求,而你配置的端点仅允许PUT方法,APEX会拒绝不被允许的请求方法,因此返回405。无需针对此问题调整,继续在Postman中使用PUT方法测试即可。
针对555用户自定义资源错误的排查方向
555错误是APEX REST模块执行自定义逻辑时抛出的异常,重点检查以下几点:
绑定变量与请求参数不匹配
确认REST模块中定义的绑定变量(如:id、:target_column),和Postman请求中传递的参数名完全一致。如果是JSON请求体,要保证键名和绑定变量名一一对应;如果是URL参数,需在Postman的Params面板正确设置参数名和值。PL/SQL更新逻辑存在异常
检查你编写的更新PL/SQL代码:- 表名、列名是否拼写正确
- 是否处理了无匹配行的情况:如果
UPDATE语句影响行数为0,若你的逻辑中添加了IF SQL%ROWCOUNT = 0 THEN RAISE_APPLICATION_ERROR(-20001, '未找到目标行'); END IF;这类代码,会直接触发555错误 - 确认REST模块使用的数据库用户拥有目标表的
UPDATE权限
REST模块资源配置错误
- 确认资源的方法类型确实设为
PUT,且该资源的URL路径未与其他REST资源冲突 - 检查来源类型:如果选择
PL/SQL,要确保代码块语法完整无错误;如果选择Table/View,需确认主键列设置正确,且待更新的列在允许的字段范围内
- 确认资源的方法类型确实设为
请求格式与模块要求不匹配
如果REST模块期望接收JSON格式,必须在Postman的Headers中设置Content-Type: application/json;如果是表单格式,则对应设置为application/x-www-form-urlencoded,否则APEX无法解析请求参数,导致更新逻辑执行失败。
内容的提问来源于stack exchange,提问作者pedro.curti
相关产品推荐
相关产品推荐

