C# 如何防止oracle将空字符串转换为null
我已成功地将现有应用程序的数据库从SqlServer转换为Oracle。 一切正常,但都是空字符串 应用程序通常将空字符串存储到not null nvarchar2字段中,Oracle会将其静默转换为null,并导致以下错误: ORA-01400:无法插入NULL 有什么解决办法吗 注意:我使用的是Oracle托管驱动程序ODP.NET+NHibernate Castle活动记录您可以使用C# 如何防止oracle将空字符串转换为null,c#,sql,oracle,C#,Sql,Oracle,我已成功地将现有应用程序的数据库从SqlServer转换为Oracle。 一切正常,但都是空字符串 应用程序通常将空字符串存储到not null nvarchar2字段中,Oracle会将其静默转换为null,并导致以下错误: ORA-01400:无法插入NULL 有什么解决办法吗 注意:我使用的是Oracle托管驱动程序ODP.NET+NHibernate Castle活动记录您可以使用nvl(列名称“”) 祝你好运@Jeffrey我知道这一点,但不幸的是,根据这些条件,答案没有提供任何有效的
nvl(列名称“”)
祝你好运@Jeffrey我知道这一点,但不幸的是,根据这些条件,答案没有提供任何有效的解决方案。这是因为没有解决方案-在Oracle中,空字符串为null。就这样。你只需要以某种方式解决它。重复问题中的答案是使用
varchar2
?@Jeffrey,即使对于NHibernate或netYes,也有一个解决方法。重复问题指的是varchar2,但同样的原则适用于NVARCHAR2。空字符串为空。您必须查看您的应用程序,找出为什么您的应用程序将空字符串视为特殊字符串,也就是说,为什么您希望空字符串绕过NOTNULL约束-空字符串与NULL之间可能存在什么值?如果您能回答这个问题,也许我们可以为您的应用程序提供一种替代设计。