【问题标题】:How to prevent oracle from converting empty strings to null [duplicate]如何防止oracle将空字符串转换为null [重复]
【发布时间】:2013-11-22 05:46:38
【问题描述】:

我已成功地将现有应用程序的数据库从 SqlServer 转换为 Oracle。 一切正常,但空字符串。

应用程序通常将空字符串存储到非空的 nvarchar2 字段中,Oracle 会默默地将它们转换为空并导致以下错误:

ORA-01400: 无法插入 NULL

有什么解决方法吗?

注意:我使用的是 Oracle Managed Driver ODP.NET + NHibernate Castle Active Record

【问题讨论】:

  • @Jeffrey 我知道这一点,但不幸的是,根据这些条件,答案没有提供任何可行的解决方案。
  • 那是因为 is 没有解决方案 - 在 Oracle 中的空字符串 are 为空。而已。你只需要以某种方式解决它。
  • 重复问题中的答案是使用varchar2 ?
  • @Jeffrey,即使是 NHibernate 或 .net 也有解决方法
  • 是的,重复的问题是指 VARCHAR2,但同样的原则也适用于 NVARCHAR2。空字符串为空。您必须查看您的应用程序并找出 为什么 您的应用程序将空字符串视为特殊的,即为什么您希望空字符串绕过 NOT NULL 约束 - 什么可能的值是空字符串 vs 。 空值?如果您能回答这个问题,也许我们可以为您的应用程序提供替代设计。

标签: c# sql oracle


【解决方案1】:

你可以使用nvl(column_name,'')

祝你好运

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多