Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何防止oracle将空字符串转换为null_C#_Sql_Oracle - Fatal编程技术网

C# 如何防止oracle将空字符串转换为null

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我知道这一点,但不幸的是,根据这些条件,答案没有提供任何有效的

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

应用程序通常将空字符串存储到not null nvarchar2字段中,Oracle会将其静默转换为null,并导致以下错误:

ORA-01400:无法插入NULL

有什么解决办法吗

注意:我使用的是Oracle托管驱动程序ODP.NET+NHibernate Castle活动记录

您可以使用
nvl(列名称“”)


祝你好运

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