16

我有一个包含一列 CLOB 类型数据的表,它们都很短,不超过 20 个字节,但是我看不到 CLOB 数据中的实际字符串。

例如,如果我使用SELECT *,在 CLOB 类型下,每个数据都是这样的:

CLOB, 8 Bytes
CLOB, 15 Bytes
CLOB, 9 Bytes

但我只想看看 CLOB 数据的内容。

我试过:

SELECT DBMS_LOB.SUBSTR(ClobColumnName, 20 ,1)

它不起作用,错误是:

错误代码:4121,SQL 状态:S1000
找不到列“DBMS_LOB”或用户定义的函数或聚合“DBMS_LOB.SUBSTR”,或者名称不明确。

那么我能问一下在查询中直接显示 CLOB 数据的语法是什么吗?

我将 SQL Server 与dbVisualizer.

4

5 回答 5

25

我想出了一个解决方案。应该有更好的方法,请在评论中显示更多可能的解决方案。

SELECT CAST(ClobColumnName AS VARCHAR(50)) AS ClobColumnName ;
于 2013-03-13T05:12:05.307 回答
7

我有一列的表具有 CLOB 数据类型(1000K),在将消息/数据存储到 CLOB 列后,发现一种解决方案可以查看 CLOB 列中的实际数据。

  SELECT CAST(T.CLOB_COLUMNNAME AS VARCHAR(1000)) AS SAMPLEDATA 
  FROM TABLE_NAME AS T 

上述查询将 CLOB(Character Large Objects) 转换为普通字符串。

于 2014-06-20T04:30:41.913 回答
3

要在 DbVis 中查看它,您只需在选项中进行更改。有一个用于显示 CLOB 列的条目。

于 2013-12-02T14:10:42.233 回答
3

我假设您正在使用 jDTS 驱动程序连接到 SQL Server。在连接的驱动程序属性中,您可以将“USELOBS”设置为 False 以自动将它们转换为字符串。

于 2016-08-30T14:29:16.937 回答
1

我遇到了同样的问题,并通过使用 DBeaver ( http://dbeaver.jkiss.org/ ) 而不是 dbVisualizer 解决了它。

当我使用 DBeaver 并从我的 SQLServer 中选择 * 时,我只需双击结果集中的 CLOB,它就会在包含内容的新窗口中打开。非常光滑。

于 2013-11-25T16:44:42.507 回答