【问题标题】:How to store string length greater than 4000 char at a time in oracle clob datatype column?如何在 oracle clob 数据类型列中一次存储大于 4000 个字符的字符串?
【发布时间】:2016-04-25 10:46:16
【问题描述】:

我正在使用 JPA 并尝试在数据类型 clob 的 oracle 数据库列中存储大于 4000 个字符的值。但不能存储说您一次可以存储 4000 个字符。在 clob 数据类型列中,限制为 4GB,但我们一次只能插入 4000 个字符。 我已经看到了一些我们可以使用 to_char() 函数的解决方案,但没有找到任何解决方案如何将它与 JPA 一起使用?

当我使用 JPA 时如何存储这些值?

【问题讨论】:

  • 在 MS SQL 2005 中有同样的问题。我必须将 length=10000 明确地放在注释声明中。没有其他帮助。
  • 更准确地说:Oracle 中 LOB 的最小限制为 4GB,但根据块和块的大小,它可以更大,最高可达 128TB。

标签: java oracle jpa clob


【解决方案1】:

尝试在列描述中使用@Lob 注解。 例如:

@Entity
@Table(name="TBL")
public class Tbl {
@Id
@Column(name = "TBL_ID")
private long id;    
@Lob
private byte[] addinfo;

另外,检查这个字段是否可以有长度限制

【讨论】:

  • 答案应该更详细地说明要做什么和最少的解释,这应该是一个评论,因为它只是一个 “这样做,因为我无法真正详细说明” .
【解决方案2】:

要插入 CLOB,您不能简单地依赖字符串连接。您需要先将 CLOB 分配给 PL/SQL 变量,然后再插入该变量。

DECLARE
l_clob;
BEGIN
l_clob := @my_clob_string;
INSERT INTO (my_clob_column) VALUES (l_clob);
END;
/

【讨论】:

    猜你喜欢
    • 2019-03-16
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    • 2011-11-13
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    相关资源
    最近更新 更多