java - 如何使用需要在 Oracle 数据库中调用存储过程的实体管理器创建 Clob?
问题描述
我正在尝试调用一个 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()
解决方案
如果您使用的是 hibernate,您可以轻松地创建一个 Clob:
String data3 = "whatever";
Clob clob = org.hibernate.engine.jdbc.NonContextualLobCreator.INSTANCE.createClob( data3 );
推荐阅读
- java - 连接被拒绝,如何解决?
- python - 熊猫数据框:将列转换为单列的行
- c# - 最右边的点和图表边界之间的视觉差距
- twilio - Authy 自动短信验证
- javascript - 当我传递该元素的 xpath 时,专注于 web 元素的 Chrome 扩展
- asp.net - 在 IIS 10 中为 Asp.net 网站禁用客户端证书验证,但允许应用请求传入客户端证书
- python - 将数据框存储在字典中,字典中的奇怪输出
- xslt - 使用 XSL (XSLT) 和 API 将 XML 转换为 XML
- java - 为什么 do while 循环后没有初始化数值?
- javascript - Webpack 在处理 React.lazy 等动态导入时返回空对象或根据 webpack 配置崩溃