You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle APEX编辑用户表单数据获取报错ORA-01722求助

ORA-01722无效数字错误排查与编辑用户资料页面示例

错误原因

  • 核心问题是数据类型不匹配::APP_USER(或v('APP_USER'))存储的是登录用户名(字符串类型),而user表的user_id是数字类型。执行where user_id = :APP_USER时,Oracle会尝试将字符串类型的:APP_USER转换为数字,若用户名不是纯数字,就会触发ORA-01722错误。

解决方案

  • 优先检查user表结构,确认是否存在存储登录用户名的字段(比如username),替换查询条件:
    select user_id, fname, lname, email
    into :P15_USER_ID, :P15_FNAME, :P15_LNAME, :P15_EMAIL
    FROM user
    where username = :APP_USER; -- 用存储用户名的字段作为条件
    
  • 若user表确实通过user_id关联登录用户,需确认:APP_USER是否实际传递数字型用户ID。若用户名本身是纯数字,可强制转换类型:
    select user_id, fname, lname, email
    into :P15_USER_ID, :P15_FNAME, :P15_LNAME, :P15_EMAIL
    FROM user
    where user_id = to_number(:APP_USER);
    

编辑用户资料页面参考示例(APEX标准流程)

  • 创建页面时选择Form on a Table or View,绑定user表,勾选需编辑的字段(fname、lname、email等)
  • 在页面Before Header流程中添加PL/SQL代码(以username关联为例):
    select user_id, fname, lname, email
    into :P15_USER_ID, :P15_FNAME, :P15_LNAME, :P15_EMAIL
    FROM user
    where username = :APP_USER;
    
  • 设置页面项P15_USER_ID为只读,禁止修改主键
  • 添加Submit按钮,关联自动生成的DML更新流程;添加Cancel按钮,跳转至主页或用户列表页

内容的提问来源于stack exchange,提问作者rkive

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 08:01:03