【问题标题】:How to create a Clob with Entity Manager needed to call a stored procedure in an Oracle database?如何使用需要在 Oracle 数据库中调用存储过程的实体管理器创建 Clob?
【发布时间】:2018-05-30 13:10:16
【问题描述】:

我正在尝试调用一个 Oracle 存储过程,它有一个 Clob 作为输入参数。我正在使用 EntityManager 进行数据库连接。我不知道如何初始化 Clob 变量(看下面的代码)。

这是我们的代码:

@PersistenceContext(unitName = "oracledb")
private EntityManager entityManager;

....

StoredProcedureQuery query =
    entityManager.createStoredProcedureQuery("procedure1");
query.registerStoredProcedureParameter(1, Integer.class, ParameterMode.IN);
query.registerStoredProcedureParameter(2, String.class, ParameterMode.IN);
query.registerStoredProcedureParameter(3, Clob.class, ParameterMode.IN);

query.setParameter(1, data1);
query.setParameter(2, data2);

Clob clob //<---how to initialize this CLOB???
clob.setString(1, data3);
query.setParameter(3, clob);

query.execute();

如何初始化 Clob 或如何从 EntityManager 获取连接以便可以调用

connection.createClob()

【问题讨论】:

    标签: java oracle entitymanager


    【解决方案1】:

    如果您使用的是 hibernate,则可以轻松创建 Clob:

    String data3 = "whatever";
    Clob clob = org.hibernate.engine.jdbc.NonContextualLobCreator.INSTANCE.createClob( data3 );
    

    【讨论】:

      猜你喜欢
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      • 2015-10-11
      • 1970-01-01
      • 2014-03-24
      • 2013-01-31
      • 2017-06-12
      • 2011-03-07
      相关资源
      最近更新 更多