问题标签 [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 投票
7 回答
11588 浏览

oracle - select * returns CLOB

I have not used oracle before and I was to modify the clob data as it has my home phone number. But when I do select * from table shows CLOB and I cannot see the data. How can I see the data and how to I Update?

I need the query.

0 投票
9 回答
44414 浏览

java - 过于复杂的 oracle jdbc BLOB 处理

当我在网上搜索使用 jdbc 瘦驱动程序将 BLOB 插入 Oracle 数据库时,大多数网页都建议采用 3 步方法:

  1. 插入empty_blob()值。
  2. 选择带有 的行for update
  3. 插入实际值。

这对我来说很好,这是一个例子:

在某些网页上,作者建议使用更简单的 1 步解决方案。此解决方案的上一个示例:

第二个代码要容易得多,所以我的问题是:第一个(流行的)解决方案有什么意义?第二种解决方案(Oracle 服务器版本号、jdbc 驱动程序版本、blob 大小……)是否存在(是否存在)某种约束?第一个解决方案更好(速度,内存消耗,......)?有什么理由不使用更简单的第二种方法?

完全相同的问题适用于 CLOB 字段。

0 投票
3 回答
5121 浏览

c# - 使用 ODBC 将 clob 插入 oracle

我正在尝试将一个 clob 插入 Oracle。如果我使用 OdbcConnection 尝试此操作,它不会将数据插入数据库。它返回 1 行受影响并且没有错误,但没有任何内容插入到数据库中。

它确实适用于 OracleConnection。但是,使用 Microsoft OracleClient 会使我们的 Web 服务经常崩溃并出现 AccessViolationException(尝试读取或写入受保护的内存。这通常表明其他内存已损坏。)。当我们使用 OracleDataAdapter.Fill(dataset) 时,这种情况经常发生。因此,使用它似乎不是一种选择。

有没有办法通过 OdbcConnection 从.Net 插入/更新超过 4.000 个字符的 clob?

0 投票
3 回答
5891 浏览

oracle - 将 LOB 添加到 Oracle 表有什么问题?

我正在尝试通过添加新的 CLOB 列(在 Oracle 10 上)来更改表,但它失败了给我一个 ORA-01735 错误。问题是我无法通过谷歌搜索找出我的查询有什么特别的问题,所以我想我会在这里问以防万一。

无论如何,我的查询是:

并得到以下错误:

有任何想法吗?

谢谢。

0 投票
2 回答
4812 浏览

sql-server - 如何将 CLOB 从 Oracle 复制到 SQL Server

CLOB 是大于 8k(有时大于 32k)的 XML 数据。有什么建议么?

0 投票
4 回答
14858 浏览

java - 在休眠中懒惰地加载一个clob

关于这个谷歌搜索可以找到很多东西,但我还没有找到解决这个问题的可行解决方案。

基本上我所拥有的是一个我想要按需加载的特定类的大 CLOB。天真的方法是:

但这不起作用,显然是因为我使用的是 oracle 驱动程序,即 Lob 对象不被视为简单句柄,而是始终被加载。或者,我被引导相信我的尝试。有一种解决方案使用特殊仪器进行延迟属性加载,但正如 Hibernate 文档似乎暗示他们对使其正常工作不太感兴趣,所以我宁愿不走那条路。特别是必须运行额外的编译过程和所有。

所以我设想的下一个解决方案是将这个对象分离为另一种类型并定义一个关联。不幸的是,虽然文档提供了相互矛盾的信息,但对我来说很明显延迟加载不适用于具有共享主键的 OneToOne 关联。我将关联的一侧设置为 ManyToOne,但我不太确定当有共享主键时如何执行此操作。

那么任何人都可以提出最好的方法来解决这个问题吗?

0 投票
5 回答
63803 浏览

sql - 使用 Oracle SQL Developer 将 CLOB 导出到文本文件

我正在使用 Oracle SQL Developer 并尝试将表导出到 CSV 文件。一些字段是 CLOB 字段,并且在许多情况下,当导出发生时,条目会被截断。我正在寻找一种方法来解决整个问题,因为我的最终目标是不在这里使用 Oracle(我收到了一个 Oracle 转储——它被加载到一个 oracle 数据库中,但是我正在使用另一种格式的数据,所以通过CSV 作为中介)。

如果对此有多种解决方案,鉴于这对我来说是一次性的程序,我不介意针对更多涉及的“做对”解决方案的更多hack-ish类型的解决方案。

0 投票
1 回答
4892 浏览

java - 使用休眠的字符串> 4000 到 CLOB 转换

我有一个java类将字符串(> 4k)持久化到数据库表中的CLOB字段中。如果字符串小于 4k,那么它可以工作。

我使用 @Lob 注释了该字段,最初由于流不支持批处理而出现异常,因此我在 Hibernate 配置中将批处理大小设置为 0,这给出了异常:

引起:java.sql.SQLException: ORA-01460: 未实现或不合理的转换请求

我只有在使用 Grails 的代码时才会遇到这个问题。当我在纯 Java 应用程序中使用相同的代码时,我不会遇到问题。两个应用程序具有相同的休眠配置(除了我需要在 Grails 中将批处理大小设置为 0)。问题是 Hibernate 版本的差异,据我所知,Grails 中的 3.2.6ga 和 java 应用程序的 3.2.5ga。在这两种情况下,Oracle 驱动程序是相同的。

欢迎任何答案。

0 投票
3 回答
2042 浏览

java - unable to update CLOB using DBCP connection

Am trying to do update a clob column using a connection object that is retrieved using Apache DBCP connection pooling.

Earlier, I've implemented connection pooling using this and it was working fine i.e am able to update CLOB. I switched to DBCP because I was getting java.sql.SQLException: ORA-01000: maximum open cursors exceeded. I've checked connection, resultSet, preparedStatement objects in all the DAOs. All the finally blocks have these cursors closed. Still am facing this error and so decided to switch to DBCP.

But, when I try to update CLOB, with this DBCP connection, the application just hangs at pstmt.executeUpdate().

where getCLOB() method is:

I've also tried by passing the ((DelegatingConnection) conn).getInnermostDelegate() connection, but no use.

Also, I tried what Shiny has suggested here. This time its hanging while I'm selecting the data.

Am using Oracle 9i and the JDBC Oracle Driver version is above 10(Sorry, couldn't remember exact version now).

0 投票
2 回答
5372 浏览

oracle - 使用 SQL Loader 将 LOB 导入 Oracle 失败

我正在尝试将一个表从 SQL Server 导出到 Oracle,该表由一个 ID 和一个存储为 nvarchar(max) 的非常长的 XML 字符串组成。

SQL Table -- CREATE TABLE MyStuff (MyID int, MyText nvarchar(max))
Oracle Table -- CREATE TABLE MyStuffImported (MyID int, MyText NCLOB)

我正在使用 SQL Server bcp 实用程序导出到文本文件 (MyStuff.bcp),然后通过 SQL Loader 将其导入 Oracle。但是 SQL 加载程序失败并显示以下消息:“数据文件 (MyStuff.bcp) 中的物理记录比最大值长 (1048576)”并且导入了 0 条记录。

我不确定确切的问题是什么。最明显的可能性是 MyText 比最大值 1048576 长,确实有些记录是,但不是全部,那么为什么至少没有导入一些记录呢?有没有办法绕过这个限制?

另一种可能性是我在一些讨论板上读到的,即 MyText 中有 Oracle 无法处理的换行符。我希望我已经通过以下方式解决了这个问题:(1)在从 SQL 导出时删除 \r 和 \n,以及(2)在 SQL Loader 控制文件的记录分隔符中使用 \n(完整文件见下文) . 我是在做不正确的事情,还是没有处理所有情况?

这是我的 SQL Loader 控制文件的文本。请注意,我使用 \ 作为分隔符,这看起来很奇怪,但它是 MyText 字段中唯一未使用的字符。因此,您会看到\\我的意思是 \ 因为我正在逃避它。

有什么建议么?也许有更好的方法通过 SQL Loader 导入 NCLOB?