- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在 Oracle 11GR2 上使用最新版本的 DBUnit (2.4.7)。我正在使用 Java 6 (1.6.0_15) 和最新版本的 Oracle 客户端 jar (jdbc6.jar)
我一直无法将 CLOB Oracle 字段引用的任何数据从 XML 文件成功加载到数据库中。
我使用了各种版本的组合:
Hibernate 库等...我认为问题出在 DBUnit 上。请参阅下面的堆栈跟踪。
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.5.0-CR-2</version>
和
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.4.0.GA</version>
我正在运行 Java 6, 1.6.0_15。
我试过:
1) FlatXmlDataSet 使用这个定义
<MESSAGE msg_id="1" mtp_id="1" msg_detail="asadds" />
2) 使用这个定义的XmlDataSet
<table name="MESSAGE">
<column>MSG_ID</column>
<column>MTP_ID</column>
<column>MSG_DETAIL</column>
<row>
<value>1</value>
<value>1</value>
<value>dsad</value>
</row>
</table>
如有任何帮助,我们将不胜感激!
堆栈跟踪如下:
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:980)ERROR [10032010 14:15:13,031] - exception creating EntityManager: [] (MessageDAOTest.java:97)java.lang.RuntimeException: Exception in JpaDBTestCase at com.ert.commons.junit4.hibernate.JpaDBTestCase.loadDbunitFiles(JpaDBTestCase.java:97) at com.ert.ertmon.dao.ejb.impl.MessageDAOTest.setUpBeforeClass(MessageDAOTest.java:94) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62) at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140) at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127) at org.apache.maven.surefire.Surefire.run(Surefire.java:177) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:334) at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:980)Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to oracle.sql.CLOB at oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:7898) at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:7511) at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:7984) at oracle.jdbc.driver.OraclePreparedStatementWrapper.setObject(OraclePreparedStatementWrapper.java:237) at org.dbunit.dataset.datatype.ClobDataType.setSqlValue(ClobDataType.java:71) at org.dbunit.database.statement.SimplePreparedStatement.addValue(SimplePreparedStatement.java:73) at org.dbunit.database.statement.AutomaticPreparedBatchStatement.addValue(AutomaticPreparedBatchStatement.java:63) at org.dbunit.operation.AbstractBatchOperation.execute(AbstractBatchOperation.java:186) at org.dbunit.AbstractDatabaseTester.executeOperation(AbstractDatabaseTester.java:190) at org.dbunit.AbstractDatabaseTester.onSetup(AbstractDatabaseTester.java:103) at com.ert.commons.junit4.hibernate.JpaDBTestCase.loadDbunitFile(JpaDBTestCase.java:136) at com.ert.commons.junit4.hibernate.JpaDBTestCase.loadDbunitFiles(JpaDBTestCase.java:92) ... 21 more
最佳答案
使用org.dbunit.ext.oracle.Oracle10DataTypeFactory
在数据工厂配置中。
关于java - 尝试加载 CLOB 字段时,DBunit 生成 java.lang.ClassCastException : java. lang.String 无法转换为 oracle.sql.CLOB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2419876/
我正在尝试将作为 StrignBuffer 的 XML 响应保存到方法中。 我需要将此字符串数据作为 CLOB 保存到 Sql 并检索相同的数据。 响应最大3-4Kb,需要再次检索到StringBuf
我目前正在使用 oracle.sql.CLOB 绑定(bind)到 Oracle Clob。 使用有什么好处 java.sql.Clob clob = con.createClob(); 而不是使用创
我想更新一列是CLOB类型,方法如下; public boolean formVeriGuncelleSil(String sql) throws VeritabaniException {
我猜这是一个反复出现的问题,但还没有找到合适的解决方案。基本上,我试图通过 DB2 过程将有点大的 XML,即 32000 多个字符插入到 CLOB 列中。插入失败并显示以下错误看起来 DB2 正在将
我最近升级了一个应用程序以使用 JAVA 7 和 JBoss 7.1.1 运行该应用程序最初是在 JAVA 5 和 Jboss 4.2.2 上开发的。此应用程序使用 hibernate 3 进行持久化
一些背景:数据库是甲骨文。我正在尝试为表格的每一行创建一个分隔字符串。分隔字符串的某些值必须来自 CLOB(包含 XML)。 CLOB 在某些行上可能为空,这就是问题所在。 例如,我有一个表:'Ite
我有一个很大的 CLOB(超过 32kB),我想使用 StringBuilder 将其读取到字符串中。我如何以最有效的方式做到这一点?我不能为 StringBuilder 使用“int length”
我在 Oracle 11GR2 上使用最新版本的 DBUnit (2.4.7)。我正在使用 Java 6 (1.6.0_15) 和最新版本的 Oracle 客户端 jar (jdbc6.jar) 我一
关于这个主题有很多类似的问题,但我找不到任何解决方案,考虑到最终结果对于 varchar2 来说太大。 所以我想要做的是改变这一点: Column1 | Column2 -------- ------
我们正在尝试在 CLOB 字段中应用子字符串函数来修剪前 4000 个字符。我们收到以下错误消息。 下面是我们正在使用的查询: select cast(substr(field_name,1,4000
我有一个字符串“stringData”,我想将其转换为 Clob,你能帮我吗? 我已经尝试过: Clob clob = new SerialClob(stringData.toCharArray())
我对 CLOB 类型的数据对象不熟悉。我正在使用JAVA编程语言来编码。 我的问题是如何将音频文件转换为 CLOB? 我应该将文件转换为字符数组吗?或者还有其他办法吗? 谁能指导我完成此操作的教程吗?
我知道它可以通过使用 SQL 来实现 update activity set REFERENCE = EMPTY_CLOB() where id = ? 但我不能这样做,我不能在 SQL 中硬编码“E
我们正在尝试在 CLOB 字段中应用子字符串函数来修剪前 4000 个字符。我们收到以下错误消息。 下面是我们正在使用的查询: select cast(substr(field_name,1,4000
如何将 Clob 数据转换为 Binarystream ? 到目前为止,我可以通过 2 个步骤找到它,1--> CLOB 到字符串 2---> 字符串到 BinaryStream。 我正在调用一个具有
我有一个超过 5000 个字符的字符串,我想用 MyBatis 将其保存为 XMLTYPE。为此,我执行以下操作: 将字符串转换为 CLOB,CLOB 使用它通过构造函数将其保存在数据库中:XMLTY
当我尝试在 CLOB 列上使用 LAG 函数时遇到问题。 假设我们有一张 table create table test ( id number primary key, not_cl
我有一个具有以下 NLS 设置的数据库 NLS_NCHAR_CHARACTERSET - AL16UTF16 NLS_CHARACTERSET - AL32UTF8 有一个带有 clob 列的表,其
我在一个包含大量 XML 数据的表中有一个 CLOB 列。我需要为表格的一行更新此列的值。我该怎么做? 我试过谷歌搜索,但这种明显简单的东西在任何地方都无法以简单的语言提供。有人可以建议吗? 如果我使
我想知道 Oracle 的 CLOB 必须通过 BLOB 数据类型提供什么。 Both数据存储限制为 (4 GB - 1) * DB_BLOCK_SIZE。 长度超过 4000 字节的文本字符串不能放
我是一名优秀的程序员,十分优秀!