问题标签 [clob]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1144 浏览

oracle - 当使用不在 ASCII 代码范围内的 unicode 字符时,使用带有 NCLOB 值的 sqlldr.exe 时出现问题

当我们使用 sqlldr 使用 lob 文件中的文本值填充 NCLOB 列并且该字符不在常规 ASCII 代码范围内时,sqlldr 炸弹。


日志文件中看似相关的部分:


控制文件有

0 投票
3 回答
6862 浏览

java - 为什么 Hibernate 转而使用 LONG 而不是 CLOB?

看起来 HibernateLONG在 3.5.5 版本(我们从 3.2.7 升级)中开始使用数据类型,而CLOB不是type="text".

这会导致问题,因为Oracle 中的数据类型是不应使用LONG的旧的过时数据类型(请参阅http://www.orafaq.com/wiki/LONGLONG ),并且表中的列不能超过一个一种数据类型。

有谁知道为什么这已经改变?

我尝试将 OracleSetBigStringTryClob属性设置为 true(如Hibernate > CLOB > Oracle :( ) 中所建议的那样,但这不会影响数据类型映射,而只会影响与我的情况无关的数据传输内部。

一种可能的解决方法是覆盖org.hibernate.dialect.Oracle9iDialect

然而,这是最后的手段——覆盖这个类更接近于分叉 Hibernate,我宁愿避免这样做。

谁能解释为什么这样做?这应该作为一个错误提出吗?

[更新]:我创建了https://hibernate.atlassian.net/browse/HHH-5569,让我们看看会发生什么。

0 投票
8 回答
482722 浏览

sql - 如何在 Oracle 中查询 CLOB 列

我正在尝试运行一个查询,其中包含一些 CLOB 数据类型的列。如果我像往常一样运行查询,所有这些字段都只是(CLOB)作为值。

我尝试使用DBMS_LOB.substr(column),我得到了错误

如何查询 CLOB 列?

0 投票
2 回答
11220 浏览

sql - DB2:如何插入带有换行符的 clob

我有一件简单的事情想做,但在尝试和完成时是如此令人沮丧。我只想获取一些价值,例如:

并将其插入到CLOB字段中并在 DB2 中保留换行符。像这样的声明

导致a value with line breaks被插入。

0 投票
2 回答
4692 浏览

php - 拉取与 VARCHAR2 不同的 Oracle CLOB?

使用 MySQL,我可以在 TEXT 列中存储大块文本,就像我使用任何其他列类型一样,没有问题。

似乎当我尝试在 Oracle 上对 CLOB 执行相同操作时,出现错误。

这是我要拉的地方:

...这是我在 while() 循环中尝试 print_r() $row 时得到的结果:

...(连同查询中的其他列)

我需要对 CLOBS 做些什么特别的事情,或者我的语法有点不对劲。

谢谢 :)

0 投票
1 回答
5426 浏览

java - 将大文本文件上传到 DB2 CLOB 字段

好吧,我已经把我的头撞在墙上一段时间了,所以就这样吧……

我目前正在编写一个 Java (1.5) 程序,该程序可以将非常大的 (200MB+) 文本文件上传到 DB2 CLOB 列,但遇到了一些问题。

在我的研究过程中,有几个代码示例建议我使用 PreparedStatement 方法setCharacterStream()将数据上传到 CLOB 字段,给我这样的信息:

这很好,除了该setCharacterStream()方法需要一个 LENGTH 值,指定要写入该字段的字符数。考虑到这一点,这将可以写入 CLOB 字段的字符数限制为Integer.MAX_VALUE. 稍微算一下,这会将我可以上传的文本文件的大小限制为 524288 字节,或大约一半兆字节。由于一个 CLOB 字段最多可以存储 2GB 的数据,我有点困惑。

我看到在 Java 1.6 中 PreparedStatement 的setCharacterStream()方法已被修改为不需要长度,并且会读取直到遇到文件结尾。不幸的是,我需要使用 Java 1.5,所以这不是一个有效的选项。

在最后一项研究中,我读到 Java 1.5 的 PreparedStatement 具有类似的功能,Javadoc 声称:

“...通过 java.io.Reader 对象发送它可能更实用。数据将根据需要从流中读取,直到到达文件结尾。”

如果存在,为什么该setCharacterStream()方法仍然需要长度参数?你会为长度参数传递什么来使用这个功能?有没有更好的方法来做到这一点,我错过了?

有什么想法吗?

0 投票
1 回答
934 浏览

php - 使用 PHP PDO 在浏览器屏幕上输出 Informix clob 或文本

我从数据库查询中获取 CLOB 或 Informix 类型的 TEXT 结果(文本),但不知道如何输出。

  • 资源 ID #47的echo $tmp结果。
  • Avar_dump($tmp)导致类型(流)的资源(47)。
  • Anfpassthru($tmp)使显示空白。
  • 如果我尝试使用 PDO::PARAM_STR 作为第三个绑定参数,显示仍然是空白的。

所以我不知道如何获取 CLOB 中的文本(它是几 KB,而不是 MB)。有任何想法吗?

0 投票
1 回答
2358 浏览

java - 使用 SetBigStringTryClob 通过 Oracle JDBC 处理 CLOB 的性能影响

我正在审查一些用于在 oracle 数据库上处理 CLOB 的旧 Java/JDBC 代码。现有代码使用类似于此问题中提到的方法的方法。

我发现一篇文章说:

在 Oracle JDBC 10g 之前,为了在 JDBC 中操作 CLOB 数据,使用了 Oracle 扩展类 oracle.sql.CLOB。但是现在,Oracle JDBC 10g 有一些增强功能可以简化 JDBC 应用程序中的 CLOB 操作。这允许使用一些可用的标准 API 来处理大数据,而不是使用 Oracle 扩展类。

本文提供了有关此增强功能的详细信息的以下信息:

默认情况下,preparedStatement.setString() 方法将允许处理最多 32765 个字节的字符串。为了插入大于 32765 字节的数据,可以设置一个新引入的 Connection 属性——SetBigStringTryClob。这迫使preparedStatement.setString() 使用另一个新引入的方法,OraclePreparedStatement.setStringForClob()。

但是它警告:

... 以这种方式处理大量数据可能并不明智;流式传输数据是更好的选择。

但以上是该文章中唯一与性能相关的警告。我的问题是,如果我的代码中的所有 CLOB 访问都已经通过 String 对象完成,我是否应该担心这种方法更改可能导致的任何其他潜在性能问题?换句话说,我的应用程序没有使用流式传输提供的好处,因为它已经总是在 String 对象中加载 CLOB,因此上述警告可能会被忽略,因为我们目前的目标不是提高性能。由于切换到此技术,是否可能出现任何其他与性能相关的问题?

0 投票
2 回答
1371 浏览

c# - 使用 C# 将 Oracle Clob 数据导出到 csv 的建议

您能否建议我们如何将 oracle clob 数据字段导出到 csv 文件。该表还包含其他常规数据类型。此外,如果 clob 数据无法放入 csv 中,还有哪些其他可用选项?

谢谢,纳文

0 投票
17 回答
145660 浏览

java - 禁用上下文 LOB 创建作为 createClob() 方法引发错误

我正在使用带有 Oracle 10g 的 Hibernate 3.5.6。我在初始化期间看到以下异常,但应用程序本身工作正常。这个异常的原因是什么?以及如何纠正?

异常
禁用上下文 LOB 创建作为createClob()方法抛出错误:java.lang.reflect.InvocationTargetException

Info
Oracle版本:Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 JDBC驱动:Oracle JDBC驱动,版本:11.1.0.7.0