【问题标题】:How to show CLOB type in a SELECT in SQL Server?如何在 SQL Server 的 SELECT 中显示 CLOB 类型?
【发布时间】:2013-02-28 21:45:14
【问题描述】:

我有一个表,其中有一列 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。

【问题讨论】:

  • SQL Server 没有 clob 数据类型。什么是真正的列数据类型?我假设varbinary(x)/binary(x)?如果是这样,您为什么首先使用它来存储字符串?
  • @MartinSmith,你是对的,我是这些令人困惑的不同 SQL 语言的新手。它在 dbVisualizer 的列属性列表中显示为具有巨大列大小 (2148473647) 的 varchar(2005) 数据类型。我必须使用这个软件,因为我使用的是 linux 而不是 Windows 来管理 SQL server...

标签: sql-server database tsql clob


【解决方案1】:

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

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

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

【讨论】:

  • 这个响应(对我而言)比每次选择时都要记住投射要好得多。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 告诉我们那个设置在哪里,你会得到我的支持;)
      • 仅限专业(付费)版。
      【解决方案5】:

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

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

      【讨论】:

        猜你喜欢
        • 2014-05-13
        • 1970-01-01
        • 2015-10-17
        • 1970-01-01
        • 2012-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多