我在 C# 中创建了一个 Windows 窗体 GUI,它可以在 DataGridView 中显示表格数据(针对 Oracle Server DB 的 SQL 查询的结果)。其中一个字段是 XML,可能非常大,存储为 CLOB(如果我是对的,则为字符大对象)。当然,用户不会直接看单元格,而是双击单元格来查看打印出来的文件。问题是我需要将文件(这是一个 CLOB)转换为 .NET 字符串,否则会产生异常。作为一种解决方法,我尝试使用 Oracle to_char 过程,但它限制为 4000 个字符。所以我取文件的一个子字符串,如下所示:
select to_char(dbms_lob.substr(column_name, 4000, 1 ))
问题是,如果它包含超过 4000 个字符,它不会显示整个文件。我怎样才能绕过这个限制?