草庐IT

java - 如何使用 Hibernate (EntityManager) 或 JPA 调用 Oracle 函数或过程

我有一个返回sys-refcursor的Oracle函数,当我使用Hibernate调用此函数时,出现以下异常。Hibernate:{?=callmy_function(?)}org.hibernate.exception.GenericJDBCException:couldnotexecutequeryjavax.persistence.PersistenceException:org.hibernate.exception.GenericJDBCException:couldnotexecutequeryatorg.hibernate.ejb.AbstractEntityManag

java - 没有小时、分钟、秒的 Oracle current_date 或 sysdate

这个问题在这里已经有了答案:Oracle:Similartosysdatebutreturningonlytimeandonlydate(4个答案)关闭9年前。在使用current_date或sysdate时,有什么方法可以去掉一天中的时间吗?我试图只将日期存储为YYYY-MM-DD,但current_date给了我YYYY-MM-DDHH:MM:SS:MS或者比较日期时,只比较日期不比较时间也一样。任何帮助都会很棒,谢谢。

java - PreparedStatement + Select for update + Oracle 12c + 主键列中的 ORA-01461

在尝试执行selectforupdate语句然后执行插入或更新时,我遇到了一个奇怪的问题。我得到一个ORA-01461异常(exception)。只有在使用最新的ojdbc驱动程序(12.1.0.2)时才会发生这种情况,而在较旧的驱动程序中它工作正常(12.1.0.1)。更具体地说,最新的驱动程序似乎对主键字符长度有某种限制(限制为32个字符),尽管相应的列被声明为超过32个字符。复制问题的示例代码如下:CREATETABLE"TEST_TABLE"("TEST_ID"VARCHAR2(40CHAR)NOTNULLENABLE,"TEST_COMMENT"VARCHAR2(200CHA

java - 如何向 Oracle 触发器发送任意参数?

目的是从Web应用程序向触发器发送额外信息,例如当前用户ID。由于使用了连接池,并且所有连接都使用相同的用户ID,我该如何传递原始Web用户ID来触发?我需要在不接触应用程序代码的情况下实现这一点。它是一个基于Java的应用程序。约翰 最佳答案 您可以使用client_identifiersession变量将应用程序用户传递给触发器。连接数据库后设置如下:CALLdbms_session.set_identifier('>');并在触发器中检索它:SELECTsys_context('USERENV','CLIENT_IDENTIF

java - 找不到适合 Oracle 数据库连接的驱动程序

我有一个小型Java应用程序,它每天执行并使用CronjSchedular检查数据库中的数据,一切正常,但最近我观察到,由于java.sql.SQLException:Nosuitabledriverfoundforjdbc:oracle:thin:@160.110.xx.xxx:1521/test与此同时,当我运行我的测试代码来检查数据库连接时,它工作正常,没有上述异常。我想不通。虽然只是轻微的代码更改,但这与数据库或数据库连接无关。有人帮我解决这个问题吗?dbconf.javapublicclassdbconf{privateConnectionconnect;privateStr

java - 从 Java 批量插入到 Oracle

我需要在Oracle中快速插入许多小行。(5个字段)。对于MySQL,我将插入分成100个一组,然后对每组100个插入使用一个插入语句。但是对于Oracle,用户的反馈是批量插入(从1000到30000之间的任意位置)太慢。是否有类似的技巧可以用来加速从Java到Oracle的编程插入? 最佳答案 可以使用Spring的DAO模块批量插入多行。在一次更新中将一组Order对象插入数据库的示例:publicclassOrderRepositoryImplextendsSimpleJdbcDaoSupportimplementsOrde

java - 如果在 Ubuntu 上安装了多个版本的 Java,如何检查 Oracle Java 版本

我的Ubuntu上安装了OpenJDK和OracleJava。如果激活的java是OpenJDK,有没有办法在bashshell中查看Oraclejava的版本? 最佳答案 update-java-alternatives-l将列出通过替代系统安装的所有java版本。例如在我的一个系统上它会显示版本和路径:java-1.6.0-openjdk-amd641061/usr/lib/jvm/java-1.6.0-openjdk-amd64java-7-oracle1069/usr/lib/jvm/java-7-oracle如果你想要or

java - 在 Oracle WebLogic Server 中针对外部服务器的常见做法是什么

我们正在尝试提出一些接近于WebLogic中JMS资源目标的简单直接模型(我知道机会很大)。队列和主题可以轻松且非常直观地映射到运行在WebLogic服务器上的JMS服务器,但外部服务器及其中的资源似乎有点棘手。首先,在WLS10.0和10.3中,外部服务器不是在JMS服务器旁边定义的,而是作为JMS模块的成员定义的。其次,它们默认以定义它们的JMS模块的目标为目标,即WLS集群或WLS服务器,这与通过子部署以JMS服务器为目标的“非外部”资源不同。但是,使用高级定位也可以在JMS服务器上定位外部服务器。这导致模型相对于外部/“非外部”JMS资源更加对称。AdvancedTargeti

java - Oracle 只读 JDBC 连接

有没有办法从oracle数据库获取只读JDBC连接。通常我正在寻找一个可以启用此功能的jdbcurl参数,例如:jdbc:oracle:thin:@hostname:1521:sid?readonly=true我用的是瘦驱动 最佳答案 如评论中所建议。最好是授予访问数据库的用户只读权限。有一个不建议的替代方案。您可以使用connection.setReadOnly在Connection类中设置readOnly参数。有关详细信息,请参阅API文档。http://docs.oracle.com/javase/6/docs/api/jav

java - 为什么 Open 和 Oracle JDK 在 Raspberry pi 上的性能差异如此之大?

在我的Raspberry上,我用两个JVM做了一些性能测试,比如CaffeineMark和SciMark。尽管我听说差异很小,但它们之间存在巨大的性能差异。我还尝试使用float进行计算,OracleJDK获得了更好的分数,尽管两者都应该支持硬浮点abi。我使用Linuxraspberrypi3.18.11-v7+作为操作系统。OpenJDK:javaversion"1.7.0_79"OpenJDKRuntimeEnvironment(IcedTea2.5.5)(7u79-2.5.5-1~deb7u1+rpi1)OpenJDKZeroVM(build24.79-b02,mixedmod