【发布时间】:2014-04-09 13:17:50
【问题描述】:
问题: 我无法在 Oracle DB 源中检索 Long 类型的列并将其设置为 .Net 中的类中的字符串属性
详情: 在尝试使用 dapper 触发 SQL 查询并返回结果时,我遇到了一个相当奇怪的情况。我不能分享实际的课程细节,但这里有一个示例。我有一堂课:
public class MyClass
{
public string VeryLongMessage { get; set; }
}
我触发了一个简洁的查询,如下所示:
using (var con = ConnectionUtility.GetConnection("MyConnectionString"))
{
var result = con.QueryAsync<MyClass>("SELECT VeryLongMessage FROM MyView");
}
但是当我检查结果中的值时,我在结果的 VeryLongMessage 属性中得到一个空值。
有没有其他人见过这样的问题?有什么想法或建议吗?
我已验证的事项: 我的 Dapper 查询的列名和属性都匹配。属性类型是字符串,Oracle db 视图中的列是 Long。
如果您需要更多详细信息,请告诉我。
【问题讨论】:
-
是 LONG 还是 LONG RAW?
-
可能是您将二进制数据分配给字符串?你让 VerLongMessage 成为一个字节数组有帮助吗?
-
@Nishmaster,我相信这个专栏很长。
-
如果您创建了一个包含 LONG 列的表,请将列类型更改为 LOB。 LONG 已被弃用多年,事实上 Oracle 的 documentation on the LONG datatype 明确表示,“不要创建具有 LONG 列的表”。分享和享受。
-
This might be of help。单击显示"Obtaining LONG and LONG RAW Data" 的链接。分享和享受。