如何在SQL Server中的SELECT中显示CLOB类型?

时间:2013-03-13 04:34:41

标签: sql-server database tsql clob

我有一个包含一列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数据的语法是什么?

我正在使用带有dbVisualizer的SQL Server。

5 个答案:

答案 0 :(得分:18)

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

SELECT CAST(ClobColumnName AS VARCHAR(50)) AS ClobColumnName ;

答案 1 :(得分:3)

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

答案 2 :(得分:3)

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

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

以上查询CAST将CLOB(字符大对象)转换为普通字符串。

答案 3 :(得分:2)

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

答案 4 :(得分:1)

我遇到了同样的问题,并使用DBeaver(http://dbeaver.jkiss.org/)代替dbVisualizer解决了这个问题。

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