我需要有关以下问题的建议/帮助: 我正在为Java Web应用程序进行oracle迁移工作。我想将我的应用程序从oracle 9i移到11g
环境是: Jdk - 1.4.2 Weblogic 8.1(SP6) 要连接的数据库 - Oracle 11g weblogic.db.url = JDBC:预言:瘦:@ $ {weblogic.db.host}:$ {weblogic.db.port} / weblogic.db.driver = oracle.jdbc.OracleDriver Oracle JDBC驱动程序版本 - “10.2.0.2.0”
当我查询任何具有CLOB数据类型的表时,查询无法执行,并显示以下错误:
“无法将'weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB'类型的值分配给'oracle.sql.CLOB''类型的属性'description_en'。
我在oracle docs中读过weblogic 8.1(S6)支持oracle 11g。
任何其他返回CLOB数据类型以外的查询,它运行正常,问题仅在于使用Oracle 11g的CLOB数据类型:(
如果连接到Oracle 9i,相同的代码工作正常,唯一的问题是Oracle 11g。
我的假设是我可能缺少一些额外的包装器/扩展,这些包装/扩展可能需要映射CLOB数据类型,因为我认为没有来自weblogic 8.1的直接支持。
我也想到以下几点: 如果应用程序包含自己的Oracle jar文件,那么不使用WebLogic提供的数据源。但我不知道如何确定这一点。
请帮忙!
答案 0 :(得分:1)
您需要升级Java版本。现代Oracle驱动程序不支持Java 1.4。
此外,最佳做法是将Oracle驱动程序jar添加到容器类路径中,而不是将它们包含在应用程序中。然后,应用程序需要引用容器提供的数据源。如果您计划某些特定于Oracle的烟花,则可能需要在编译时使用驱动程序jar。您需要在Maven pom.xml中将它们标记为“已提供”。