Tag: oracle

hibernate中的并发更新处理

目前我们在数据层中使用JDBC并计划用hibernate替换它。 我是Hibernate的新手,不知道hibernate如何处理并发。 有人可以解释我是否使用spring进行事务管理,如何处理并发更新:通过hibernate(在hibernate的内存自动版本管理中)或者我必须将版本列放在数据库中以手动处理并发更新。

当我尝试执行此JDBC查询时,为什么我获得此“SQLSyntaxErrorException:ORA-00933:SQL命令未正确结束”?

尝试在Java应用程序中实现简单的JDBC查询时遇到一些问题。 所以我有以下查询: SELECT D.* FROM coda_tx c, documenti_tx d WHERE C.FK_TIPO_DOC = 99 AND C.FK_STATO = 1 AND C.FK_PIVA_MITTENTE = ‘05779711000’ AND C.PK_CODA = D.PFK_CODA AND C.CANALE=’STA’ 如果我将它运行到Oracle SQL Developer中,它运行良好,我获得了2条记录。 所以我必须将这个查询实现到我的应用程序的DAO类中,其中我定义了以下方法: public void getListaFatturePDF(String partitaIva) { System.out.println(“INTO ottieniListaFatturePDF()”); Blob blobPdf; String sql; StringBuffer sb = new StringBuffer(); sb.append(“SELECT D.*”); sb.append(“FROM coda_tx c, documenti_tx d”); sb.append(“WHERE […]

java.lang.UnsatisfiedLinkError:java中没有ocijdbc11。 library.path

我正在尝试与使用os身份validation的 oracle 11g 建立jdbc oci连接 我做了一个示例控制台应用程序来测试某些客户端计算机上的连接 我在具有jdk 6的机器上开发了应用程序,并在项目中使用了jar ojdbc6.jar 。 我用来连接数据库的代码如下: OracleDataSource ods = new OracleDataSource(); String tnsName=”Prod”; ods.setURL(“jdbc:oracle:oci:/@”+tnsName); Connection conn = ods.getConnection(); 我正在尝试从安装了oracle11g的客户端计算机上运行此应用程序,并且在路径上将oracle主目录设置为: C:\ orant \ jdk \ bin 路径: C:\ orant \ bin包含oci.dll ,不包含ocijdbc11.dll 客户端安装了jre7并且没有jdk。 当试图在osvalidation到oracle数据库的客户机上运行上面的代码时,我得到以下exception: Exception in thread “main” java.lang.UnsatisfiedLinkError: no ocijdbc11 in java. library.path at java.lang.ClassLoader.loadLibrary(Unknown Source) at java.lang.Runtime.loadLibrary0(Unknown Source) at […]

Oracle:OALL8处于不一致状态

作为升级JRun的一部分,我们正在从1.4 JVM迁移到1.6 JVM。 现在我得到一个非常奇怪的oracle db错误:“OALL8处于不一致状态”。 我已经把问题归结为插入完全不使用绑定变量的查询 – 所有内联参数。 如果我在没有任何绑定变量的情况下运行查询,则会出现上述错误。 只要用绑定变量替换其中一个硬编码值 – 一切都可以正常工作。 另一个奇怪的是,在执行查询之后,它实际上已提交给数据库。 我可以从另一个会话连接并查看插入的行。 我已经尝试在事务中包装查询,它似乎成功,因为没有显式事务,查询的行为没有改变。 以下是相关细节: Java版本:1.6.0_12-b04 虚拟机版本:11.2-b01(HotSpot服务器) Oracle Server:10.2.0.4 Oracle客户端:11.1.0.7.0到ojdbc6.jar 更新:我使用的是cfqueryparam – 它们在oracle世界中被称为绑定变量。 虽然这确实解决了当前的问题,但我们有一个相当大的遗留代码库,我们无法通过实际更新查询作为从CF7升级到CF8的一部分。 即使我已经确定了一个失败的特定情况(并将其封装在mxunit测试中) – 这并不意味着没有其他领域可能存在这个问题。 我真的希望有一个解决方案来消除OALL8错误,而不是围绕它编码。 更新2:在我们的DBA检查后,他已将名为CURSOR_SHARING的参数设置为SIMILAR。 Oracle默认为EXACT。 发生的事情是当ColdFusion将查询关闭以执行时,Oracle正在将所有文字值转换为绑定变量,这似乎使ColdFusion感到困惑。 将设置恢复为EXACT允许文字查询正常工作。 更新3: Oracle最终向我们发布了一个针对JDBC的带外补丁。 它被识别为JDBC错误。 最新的驱动程序应该在它们最终更新时包含它。 如果您有支持,您也可以通过他们的TAR系统请求补丁。

将数组从Java传递到Oracle:java.sql.SQLException:无法转换为内部表示:error

我在DAO中有以下内容,当我执行时,我得到了 java.sql.SQLException:无法转换为内部表示forms:test.Project@843 DAO代码 List projectList = new LinkedList(); public void saveRecord(List project) throws DatabaseException,SQLException { for (Project items: project) { insertRecord(items); } } private void insertRecord(Project project) throws SQLException { projectList.add(project); try{ ArrayDescriptor desc = ArrayDescriptor.createDescriptor(“MY_ARRAY”, dbConn); // execpetion in this line ARRAY arr = new ARRAY(desc, dbConn, (Object[])projectList.toArray()); 我该如何解决这个问题? 编辑1 CREATE OR REPLACE TYPE […]

尝试将Oracle-ADF应用程序部署到Tomcat 7

我正在尝试将oracle-adf应用程序部署到Tomcat 7.我做了很多事情,但最后,我得到了以下例外。 有什么建议么 ? [使用jdev studio,版本11.1.2.4; 成功运行没有模型部分的应用程序(没有DB交互)] java.lang.ClassCastException: oracle.adfinternal.controller.faces.context.StubJSFPageLifecycleContext cannot be cast to oracle.adf.controller.faces.context.FacesPageLifecycleContext oracle.adfinternal.controller.application.model.UpdateBindingListener.beforePhase(UpdateBindingListener.java:66) oracle.adfinternal.controller.lifecycle.ADFLifecycleImpl$PagePhaseListenerWrapper.beforePhase(ADFLifecycleImpl.java:550) oracle.adfinternal.controller.lifecycle.LifecycleImpl.internalDispatchBeforeEvent(LifecycleImpl.java:100) oracle.adfinternal.controller.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:191) oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.access$200(ADFPhaseListener.java:23) oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener$PhaseInvokerImpl.startPageLifecycle(ADFPhaseListener.java:232) oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener$1.after(ADFPhaseListener.java:274) oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.afterPhase(ADFPhaseListener.java:75) oracle.adfinternal.controller.faces.lifecycle.ADFLifecyclePhaseListener.afterPhase(ADFLifecyclePhaseListener.java:53) oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:447) oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:202) javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:173) oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:125) org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468) oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60) org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468) org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293) org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199) org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

如何使用JasperReports查看Oracle中blob列的图像?

我尝试在报表布局中定义一个图像元素,并将类型设置为java.io.Inputstream,但这不起作用,我也尝试设置为java.awt.Image并且都不起作用,我得到的例外是 java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to java.awt.Image 要么 java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to java.io.InputStream 我也尝试谷歌,但结果是我现在正在做的事情。 谢谢你的帮助。

Java数据库BLOB到Java中的InputStream?

我创建了一个Java函数,它将InputStream作为输入。 我有一个oracle.sql.BLOB实例传递给该函数。 如何将其转换为InputStream ? 我是否需要使用BLOB参数重新编写函数?

如何创建oracle.sql.ARRAY对象?

这个问题与我的原始问题有关如何将数组从Java返回到PL / SQL? ,但更具体。 我一直在阅读Oracle数据库JDBC开发人员指南和 创建ARRAY对象 服务器端内部驱动程序 oracle.jdbc.OracleConnection oracle.jdbc.OracleDriver 但我仍然无法编写最小代码,我可以使用它来创建ARRAY ARRAY array = oracle.jdbc.OracleConnection.createARRAY(sql_type_name, elements); 按照创建ARRAY对象中的说明进行操作。 我正在使用Oracle数据库JVM。 我试过以下: 例1 create or replace type widgets_t is table of varchar2(32767); / create or replace and compile java source named “so20j1” as public class so20j1 { public void f1() { String[] elements = new String[]{“foo”, “bar”, “zoo”}; oracle.sql.ARRAY […]

jdbc:oracle数据库更改通知和重复事件

我需要一些监听器来进行Oracle数据库表的任何更改(更新,插入,删除)。 问题:我在桌面上通过单次更新获得了很多检测。 我认为它的oracle缓存等。 是否可能只有真正的变化才能被发现? 我的代码: import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; import oracle.jdbc.OracleConnection; import oracle.jdbc.OracleDriver; import oracle.jdbc.OracleStatement; import oracle.jdbc.dcn.DatabaseChangeEvent; import oracle.jdbc.dcn.DatabaseChangeListener; import oracle.jdbc.dcn.DatabaseChangeRegistration; public class OracleDCN { static final String USERNAME = “scott”; static final String PASSWORD = “tiger”; static String URL = “jdbc:oracle:thin:@localhost:1521:stingdev”; public static void main(String[] args) { OracleDCN oracleDCN = […]