问题标签 [ora-02290]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 使用 Java、iBatis 和 Oracle 处理 UTC 日期时间的正确方法是什么?
我在我认为纯粹是 UTC 的代码中遇到了一个意外的夏令时问题。我正在使用 Java 1.6、iBatis SQL 映射器 (2.3.3) 和 Oracle XE(Oracle 10.2 的评估版)和 Oracle 瘦驱动程序。
该数据库包含一个表示电视广播时间表的表。每个“资产”(程序)都有一个开始时间和结束时间。这是相关的切片:
asset_time
在即将到来的 2009 年 11 月 1 日星期日上午,跨越美国中央夏令时调整的程序正在触发预言机约束。
我有这个数据传输对象(日期是 java.util.Dates):
在 iBatis SQL 映射中,我有将 Asset DTO 插入 Oracle Asset 表的语句:
在 Java 方面,我已经验证我通过这个预插入断言为 iBatis 提供了正确的 UTC 日期输入,它没有被抛出:
就在 Oracle 约束失败之前,上面的代码打印:
我在美国中部时区,格林威治标准时间 -5:00,所以这个程序从凌晨 1:30 开始,到凌晨 2:00 结束。夏令时更改在凌晨 2:00 发生,并将时钟调回凌晨 1:00。
iBatis 报告 Oracle 约束失败(已编辑):
您会注意到,在 Oracle 方面,它看到了带有夏令时调整的 start_time/end_time,因此 iBatis 映射逻辑或 Oracle 驱动程序中的某些内容没有达到我的预期。驱动是ojdbc14.jar,瘦驱动:
确保此代码纯粹是 UTC 的正确方法是什么?
提前致谢!
oracle - 缺少详细信息的 Oracle DML 错误
我从这样的批量插入操作中捕获错误:
输出看起来像这样:
我收到错误的事实并不困扰我,因为我正在测试错误处理代码。问题是 Oracle 错误消息没有显示约束名称,即它显示check constraint (.) violated
但没有告诉我我违反了哪个检查约束。
有谁知道这是怎么回事?
(甲骨文 10.2 版)