【问题标题】:SQLPLUS displaying of tables with CLOB typesSQLPLUS 显示具有 CLOB 类型的表
【发布时间】:2015-10-17 00:42:10
【问题描述】:

我有一个有 3 列的表。我有一个 NUMBER 列、CLOB 列和 BLOB 列。我如何使用某种 SELECT * 语句来显示我在这个表中输入的内容,而不仅仅是我在那里的部分长字符串。我知道从 CLOB 中显示长字符串的唯一方法是使用 DBMS_LOB.substr 技术。我的 BLOB 列目前全部为 NULL,因此不必太担心显示该部分,只需显示与其关联的 CLOB 的数字列。谢谢!

【问题讨论】:

  • select number_col, clob_col from your_table 有什么问题?也许您的long 设置不够大,您需要set long xxxxx 其中xxxxx 是大于您要打印的最大CLOB 的字节数?

标签: oracle sqlplus


【解决方案1】:

请看这里How to query a CLOB column in Oracle

获取 CLOB 列的子字符串并使用具有大小/缓冲区限制的查询工具时 有时您需要将 BUFFER 设置为更大的大小。
例如,在使用 SQL Plus 时,使用 SET BUFFER 10000 将其设置为 10000,因为默认值为 4000。

运行 DMBS_LOB.substr 命令,您还可以指定要返回的字符数量和偏移量。
因此,使用 DMBS_LOB.substr(column, 3000) 可能会将其限制为足够小的缓冲区数量。

有关 substr 命令的更多信息,请参阅 oracle 文档

DBMS_LOB.SUBSTR (
   lob_loc     IN    CLOB   CHARACTER SET ANY_CS,
   amount      IN    INTEGER := 32767,
   offset      IN    INTEGER := 1)
  RETURN VARCHAR2 CHARACTER SET lob_loc%CHARSET;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 2020-03-23
    • 1970-01-01
    • 2020-03-22
    • 2020-01-13
    • 1970-01-01
    相关资源
    最近更新 更多