java - 如何从 weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB 获取字符串?

标签 java oracle weblogic clob

环境:Oracle 11g、Weblogic 9.2、Java 4、驱动程序:oracle.jdbc.OracleDriver

上下文:我想从数据库中提取 xml 值,并使用以下选择在 Java 中处理结果:

SELECT EXTRACT(XML_TEXT, 'PATH/TO/XML/VALUE/text()').getClobVal() AS VALUE 
FROM MYTBALE WHERE id =xxxx;

问题:在 SQL Developer 中,我确实可以很好地看到检索到的字符串,但在 Java 中:

  • 如果我使用 getClobVal() 函数,Weblogic 将返回一个 weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB 类型的包装对象,我无法转换或解开该对象。
  • 如果我不使用 getClobVal() ,则会返回 oracle.sql.Opaque,我也无法将其转换为任何内容。

代码: 使用 getClobVal():

...
HashMap <String, Object> element = (HashMap) iter.next();
String value = (unwrap & cast in some way ) element.get("VALUE");
...

我找不到从该对象获取字符串的方法,有什么想法吗?

编辑: 我无法禁用 Weblogic 换行。我正在考虑在数据库端采取一些解决方法来获取 blob。

最佳答案

在 WebLogic 控制台中禁用数据类型包装(在连接池 -> 高级下,请参阅 here )。重新启动服务器,现在您将获得一个 oracle.sql.CLOB 对象,而不是 weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB 对象。

编辑:对于该特定方法/类,您可以使用特定供应商连接 (getVendorConnection() method ),该连接应返回未包装的对象。

关于java - 如何从 weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB 获取字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55244160/

相关文章:

java - weblogic 12c部署失败

java - SonarQube 多模块代码覆盖率

java - Spring oauth2 添加额外的 fieldp

sql - 在 oracle 中插入包含引号的字符串

sql - TADOQuery不返回任何记录

weblogic - 将项目添加到 WebLogic 10 中的应用程序 (WAR) 类路径?

javax.naming.NameNotFoundException :while trying to lookup

java - 如何在 Android 上禁用 ListView 的滚动?

java - 在java中配置mysql url

java - JDBC-ORA-01861 : literal does not match format string 01861