【问题标题】:Update Not Null Column with Default Value Fails使用默认值更新非空列失败
【发布时间】:2014-10-02 05:22:04
【问题描述】:

如果这是一个基本问题,请原谅我。我不是 Oracle 开发人员,Google 让我失望了,所以我求助于你。

我在同一个数据库中有两个架构。它们都具有相同的结构。我有一个表,其列定义为...

longitude_coordinate NUMBER(16,8) 默认 0 不为空,

...如果我运行查询...

UPDATE table SET longitude_coordinate = null WHERE id = xxxxxxxx

...在一个模式上成功,在另一个模式上失败并出现错误....

ORA-01407

无法将 ("SCHEMA"."TABLE"."LONGITUDE_COORDINATE") 更新为 NULL。

我假设必须有一些全局选项,但我一生都找不到它。

【问题讨论】:

  • id 的值是否存在于两种模式中?如果update 找不到任何要更改的行,则永远不会违反空约束。
  • 这两个对象实际上没有相同的定义,并且“其他模式”表允许NULL 值或“其他模式”中的UPDATE 语句实际上不会更新任何行.

标签: oracle null default-value


【解决方案1】:

您正在尝试将空值设置为不支持空值的列, 这应该有效:

UPDATE table SET longitude_coordinate = 0 WHERE id = xxxxxxxx

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    看起来您正在尝试使用空值更新非空列,并且由于显而易见的原因它会抛出错误。 您能否检查在成功执行查询的架构中是否禁用了非空约束。

    【讨论】:

      猜你喜欢
      • 2013-05-19
      • 2013-12-14
      • 1970-01-01
      • 2019-06-01
      • 2019-09-09
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 2012-12-01
      相关资源
      最近更新 更多