0

我的表中有一个 Varchar2 字段,我想将其转换为 CLOB。我不确定选择时数据是否会被截断。如果是这样,限制是多少,它是否取决于数据库设置?

在我的 TOAD 或 SQLPLUS 窗口中,它会被截断,但这可能只是环境设置。我不确定它是否会在我的实际应用程序中被截断(我可以测试这个,但我应该测试到什么大小?)

如果它确实被截断,那么显示整个 CLOB 的最佳方式是什么?我的 SELECT 查询中还有其他字段,所以我认为我不能只循环多行。有什么出路吗?

谢谢你的帮助。

4

2 回答 2

2

在 10gR2 中,一个CLOB可以容纳“(4 GB - 1)*(数据库块大小)”,并且数据库块大小通常为 8k。

因此,理论上,一个 CLOB 可以是 1 TB 的数据,这超出了大多数机器的处理范围。

所以“我应该测试什么尺寸”的答案是你决定的任何尺寸。我会使用比我期望处理的限制大一个数量级的数量级,所以如果我期望一个 5 MB 的值,我会用 50 MB 进行测试。50MB 对于文本来说是非常大的(尽管如果它是某种日志文件可能是合适的)。

于 2010-07-01T06:35:39.103 回答
2

如果您从表中选择一个 clob 值,则取决于您的应用程序将如何处理它。如果将 varchar2 列更改为 clob 列,则需要更改应用程序,以便它从数据库中正确检索 clob 数据。所以我想答案是:有可能让它正常工作。

于 2010-07-01T07:48:24.340 回答