问题标签 [ojdbc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
database - JBoss AS 7 上的 Oracle 数据库性能问题
伙计们,我正在积极地将在 JBoss AS 5 上运行的应用程序迁移到 JBoss AS 7。
迁移后,我注意到数据库调用对性能造成了巨大影响。
我在 JBoss 5 上使用 ojdbc14 和一个池(最小 - 5 最大 - 100),它对我们来说工作得很好。
在 JBoss AS 7 中,我已将驱动程序作为模块安装。
我所有的查询都需要 10 倍的时间。例如,如果我在 JBoss AS 5 上查询需要 30 毫秒,那么在 JBoss AS 7 上需要 400-600 毫秒。
我已尝试使用以下配置中显示的两个驱动程序(ojdbc6、ojdbc14)
一个观察结果是,Linux 机器上的性能下降比 OS X 机器更明显。
供参考。我尝试在 Java 1.6 和 1.7 上运行 JBoss AS 7
我的应用程序本身包含:
- struts 2 前端(用于请求处理,不涉及 web ui)
- 后端的会话 Bean
- 用于批处理作业的 QuartzPlugin。
- 自定义 MBean
我努力了
- 降低和增加池大小
- 预填充 = 真假
- 在 ojdbc6 和 ojdbc14 之间切换
独立的.xml
java - 带有 oracle NUMBER 类型的 jdbc 准备好的语句
我有一个 java 应用程序,它建立了一个到 Orcale 数据库的 jdbc 连接。我正在尝试将数据插入数据库,但在涉及 oracle NUMBER 类型时感到困惑。我的表中有三列分别属于这些类型。
我的第一个问题是我应该将数据放入哪种类型的 java 类型中,以便在准备好的语句中使用它。
我的第二个问题是我可以在准备好的语句中使用什么集合操作来插入数据。
让我们假设我们正在使用 NUMBER(38,0)。我会将 java 类型设置为 BigInteger 吗?如果我有一个整数 1 会是
然后在我准备好的声明中
这似乎不起作用,所以我认为这是不正确的。任何帮助,将不胜感激。
java - Java 连接到 OracleDB 的速度非常慢(使用 ojdbc6.jar 和 Linux)
我正在尝试部署连接到 ORACLE 数据库 (10g) 的 Web 服务。
目前,我有 - CentOS 6.4 64 位 - 带有 JDK 1.7.0_25 的 Apache Tomcat 7.0.42 - Ojdbc6.jar
当我在 Windows 上使用相同版本的 tomcat 调用 Web 服务时。它工作正常(0.1-0.5 秒/事务)。
但不幸的是,当我尝试在 CentOS 服务器上调用它时,它非常慢(10-20 秒/事务)
除了操作系统和我监控 catalina.out 时,这些库完全相同,没有错误,但是执行 dbCreateConnection() 时速度很慢)
请给我一个建议。
谢谢 :\
仅供参考,这是数据库部分中的代码。
java - ojdbc14.jar 和 ojdbc6.jar 中的 OracleResultSet 类
我在ojdbc14.jar的程序中使用了oracle.jdbc.driver.OracleResultSet类。之后,我将 Oracle 10g 升级到 11g,从现在开始,我正在使用ojdbc6.jar。
使用这个新的 jar 文件,它给了我编译错误"oracle.jdbc.driver.OracleResultSet is not visible"。我已经使用“jar xf xxx.jar”从两个 jar 文件中提取了类文件,并为 OracleResultSet 类获取了类文件并反编译并获得了 Java 代码。我观察到 OracleResultSet 是 ojdbc14.jar 中的公共类,但 ojdbc6.jar 中没有访问修饰符,这限制了我使用“OracleResultSet”类。
这个问题有什么解决办法吗?
java - P6Spy 不记录 SQL
我有一个程序可以使用准备好的语句更新数据库中的表,并且我试图查看所有已实现的 SQL 语句的输出。
我的研究建议 P6Spy 看起来很棒,我下载了它,将 P6Spy.jar 作为依赖项添加到我的库中,修改为 spy.properties 文件以连接以使用 oracle 驱动程序作为真实驱动程序,将 spy.properties 添加到我的类路径,并在我的代码中将驱动程序更改为“com.p6spy.engine.spy.P6SpyDriver”。
一切正常,生成了 spy.log 文件,但它不包含 SQL 语句。相反,spy.log 文件中的输出是:
有没有人有使用 P6Spy 的经验并且知道问题是什么?我读过 spy.log 只是应该在完成我所做的所有事情并运行程序之后生成 sql 语句,所以我在这里很困惑
编辑——顺便更新了数据库,所以 SQL 语句确实通过并更新了数据库
java - 当 Java 向 Oracle 发送消息时
当对 Oracle 或类似的 RDBMS 进行 Java 调用时,Java 如何知道 Oracle 操作已完成?
例如,“ create table as (select * from table1)
”。
如果我们通过 Java 在 Oracle 中执行那条单行 SQL 语句,Java 怎么知道这行代码已经完成,然后继续执行下一条 Java 指令?我的猜测是发生了一些秘密的 JDBC,但不确定它是什么。
有人可以解释吗?
我希望可以调整在 Java 中执行那行代码所需的时间。如果您不想要返回 ResultSet 对象,而只是想要某种确认,那么您可以微调一些东西。
java - 是否可以使用 JPA 在 Oracle 中存储 BigDecimal 0.000
我在 JPA 实体上有以下属性:
如果置信度设置为“0.000”,例如:setConfidence(new BigDecimal("0.000")); 然后实体被持久化到数据库,然后从数据库中取回,取回的值失去了它的精度和规模,只是0。
数据库模式由 JPA/Eclipselink 在部署 Web 应用程序时创建。
我的环境是EclipseLink 2.3.2.v20111125-r10461,Oracle 11g R2,Oracle JDBC Thin driver OJDBC 1.6。
java - 使用 Mybatis 和 ojdbc14.jar 为参数设置 null 时出错
将参数设置为 null 时出现错误。
此问题仅在使用 ojdbc14.jar 时发生。使用 ojdbc6.jar 时,没问题。
我在 mybatis 配置 xml 中有这个设置
错误信息是:
xml中的sql是
调用它的java是
问题是:
是不是ojdbc14.jar的问题,如果是,为什么?
我知道我可以通过使用#{elementName, jdbcType=VARCHAR2} 来解决它,但是我的项目到处都有这个问题,而且很快就会到期。我不想改变所有这些。
java - 如何从 Java 调用的流水线函数中捕获 PL/SQL 错误
在我们基于 Oracle(11g) 的应用程序中,我们大量使用了流水线函数。现在事实证明,从这些函数报告错误很困难,如下面的(缩减)示例所示。该过程的存在是为了从 Java 中调用,它应该接收在 PL/SQL 执行期间任何地方发生的错误。
甲骨文部分:
运行上述函数会导致显示异常:
ORA-00904: "WRONG_COLUMN": invalid column name
Java部分:
异常不会被捕获。结果集为空。
这是预期的行为吗?我们做错了什么吗?是否存在解决方法?