我有一个包含一列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。
答案 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,它就会在包含内容的新窗口中打开。非常光滑。