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

Oracle Apex中CURRENT_TIMESTAMP精度异常问题求助

解决Oracle Apex表单CURRENT_TIMESTAMP默认值异常问题

排查方向与解决方案

1. 确认表层面的默认值设置

先检查表的date_time列是否在数据库层面正确设置了CURRENT_TIMESTAMP默认值,而非仅在Apex表单中配置:

  • 执行SQL查看表结构:
    SELECT column_name, data_default 
    FROM user_tab_columns 
    WHERE table_name = '你的表名' AND column_name = 'DATE_TIME';
    
  • 如果data_default为空,直接在表层面添加默认值:
    ALTER TABLE 你的表名 
    MODIFY date_time DEFAULT CURRENT_TIMESTAMP;
    
    数据库层面的默认值会覆盖表单的处理逻辑,确保SQL和表单插入都能获取正确时间。

2. 调整Apex表单项属性

若需在表单层面控制默认值,检查以下项属性:

  • 项类型:必须选择Date Picker (Timestamp),普通Date Picker仅处理日期部分,时间默认填充午夜。
  • 默认值类型:选择PL/SQL Expression,默认值填写CURRENT_TIMESTAMP,避免使用Static Value等其他类型。
  • 禁用用户输入:若该字段无需手动修改,将项的Enabled设为No,防止提交时覆盖默认值。

3. 检查页面提交处理逻辑

查看表单对应的页面处理(Process),确认没有强制给date_time字段赋值为纯日期的代码。比如排查是否存在:P1_DATE_TIME := TRUNC(SYSDATE);这类语句,若有则修改为:P1_DATE_TIME := CURRENT_TIMESTAMP;。

4. 验证时区一致性

确认数据库与Apex应用的时区设置匹配:

  • 查看数据库时区:
    SELECT dbtimezone FROM dual;
    
  • 查看Apex应用时区:进入Shared Components -> Application Definition,检查Time Zone配置,确保与数据库时区一致,避免时间转换丢失时分秒。

内容的提问来源于stack exchange,提问作者Trung Lương

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 01:43:08