存clob为空的值_给Oracle数据库中CLOB字段插入空值
遇到往ORACLE數據庫中插入數據時總是報ORA-01084 invalid argument in OCI call錯誤,經分析是因為表中的一個字段類型為CLOB,并且可為空,當在給該字段插入空值時引發的該錯誤。后來判斷是否為空值,如果為空值使用DBNull.Value,以此解決了該問題。
Null 指的是無效的對象引用;而 DBNull 是一個類, DBNull.Value 是它唯一的實例 。DBNull 的實例 DBNull.Value是數據庫表中的空數據在 .Net 代碼中的表現形式。我們知道,當數據庫表中的可空字段沒有被賦值時,數據庫表中的該字段會被指定為 Null ,那么這個 Null 值在 .Net 代碼中該如何表示呢,使用的就是 DBNull .Value。反過來說,在代碼中,當一個字段的值等于 DBNull .Value,那就說明這個字段在數據庫中保存的值為 Null ,也就是說它在數據庫中的值為空。所以, DBNull.Value 對象指向有效的對象 ,并不像Null 沒有指向任何有效的對象。
DBNull 是一個單獨的類,這意味著該類只能存在此實例。
如果數據庫字段的數據缺失,則您可以使用 DBNull.Value 屬性將 DBNull 對象值顯式分配給該字段。然而,大部分數據提供程序會自動進行分配。
若要計算數據庫字段以確定其值是否為 DBNull,則可以將字段值傳遞給 DBNull.Value.Equals 方法。但此方法不常用,因為有許多其他方式可計算數據庫字段是否缺少數據。
示例
下面的示例調用 DBNull.Value.Equals 方法,來確定聯系人數據庫中的數據庫字段是否具有有效值。如果具有有效值,字段值將被追加到在標簽中輸出的字符串中。
private voidOutputLabels(DataTable dt)
{stringlabel;//Iterate rows of table
foreach (DataRow row indt.Rows)
{intlabelLen;
label=String.Empty;
label+= AddFieldValue(label, row, "Title");
label+= AddFieldValue(label, row, "FirstName");
label+= AddFieldValue(label, row, "MiddleInitial");
label+= AddFieldValue(label, row, "LastName");
label+= AddFieldValue(label, row, "Suffix");
label+= "\n";
label+= AddFieldValue(label, row, "Address1");
label+= AddFieldValue(label, row, "AptNo");
label+= "\n";
labelLen=label.Length;
label+= AddFieldValue(label, row, "Address2");if (label.Length !=labelLen)
label+= "\n";
label+= AddFieldValue(label, row, "City");
label+= AddFieldValue(label, row, "State");
label+= AddFieldValue(label, row, "Zip");
Console.WriteLine(label);
Console.WriteLine();
}
}private string AddFieldValue(stringlabel, DataRow row,stringfieldName)
{if (!DBNull.Value.Equals(row[fieldName]))return (string) row[fieldName] + " ";else
returnString.Empty;
}
總結
以上是生活随笔為你收集整理的存clob为空的值_给Oracle数据库中CLOB字段插入空值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python strftime格式化显示
- 下一篇: 中文论文万能句型_SCI 论文写作万能句