Tag: oracle

Oracle中使用LIKE进行重音和不区分大小写的排序规则

我发现这个答案很有用: Oracle中的Accent和不区分大小写的COLLATE ,但我的问题是关于使用版本9 Oracle db进行搜索。 我尝试过这样的查询: SELECT column_name FROM table_name WHERE NLSSORT(column_name, ‘NLS_SORT = Latin_AI’) LIKE NLSSORT(‘%somethingInDB%’, ‘NLS_SORT = Latin_AI’) 但没有结果返回。 我创建了一个小的Java文件来测试: import org.apache.commons.dbcp.BasicDataSource; import java.sql.Connection; import java.sql.SQLException; import java.sql.PreparedStatement; import java.sql.ResultSet; public class DbCollationTest { public static void main(String[] args) throws SQLException { BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName(“oracle.jdbc.driver.OracleDriver”); dataSource.setUrl(“url”); dataSource.setUsername(“usr”); dataSource.setPassword(“pass”); Connection conn […]

在android中连接到oracle

所以人们可能会告诉我这是一个坏主意,但我想至少试一试。 编辑此应用程序的目的是它只能在设备是oracle db所在的同一网络的一部分或通过VPN连接到网络时工作。 数据库中的信息不会全局访问,这就是我需要直接连接到oracle db的原因。 现在根据这个post 在android应用程序中连接oracle 他成功地查询了oracle db。 所以我有一个相当基本的类,初始化时会尝试连接到我的数据库。 package com.producermobile; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import android.util.Log; public class ConnectOra { private Connection conn; private Statement stmt; public ConnectOra() throws ClassNotFoundException { try { Class.forName(“oracle.jdbc.driver.OracleDriver”); String url = “jdbc:oracle:thin:@xxxx:1521:PR10″; this.conn = DriverManager.getConnection(url,”xxx”,”xxx”); this.conn.setAutoCommit(false); this.stmt = this.conn.createStatement(); } catch(SQLException […]

sqldeveloper错误消息:网络适配器无法建立连接错误

我通过系统上的sqldeveloper连接到远程oracle数据库。 突然电力下降,我不得不重新启动系统。 现在,当我尝试连接到远程oracle数据库时,它会抛出一条错误消息: 网络适​​配器无法建立连接。 供应商代码20 任何人都可以帮我解决这个问题。

如何使用MyBatis获取Oracle中的最后一个插入ID?

我正在将一些数据插入到Oracle表中,并且需要检索插入行的id 。 所述id由序列生成,然后通过触发器插入到表中。 现在,我知道在使用JDBC时有几种方法可以获取插入行的id,但由于我使用MyBatis来执行INSERT命令,我似乎无法弄清楚如何在插入数据后获取id 。 任何建议将不胜感激。

BatchUpdateException:批处理不会终止

我有一个应用程序,它处理一个非常大的文件并将数据发送到oracle数据库(使用Java 6,oracle 9)。 在循环中,我使用PreparedStatement ps并创建使用ps.addBatch()生成的所有SQL语句。 我有一种情况,在ps.executeBatch()期间抛出BatchUpdateException bue ps.executeBatch() 。 此时,批处理停止执行。 我希望批处理执行继续,以便我可以在方法processUpdateCounts(bue.getUpdateCounts())检查失败的更新。 关于类BatchUpdateException的javadoc说: 在批量更新中的命令无法正确执行并且抛出BatchUpdateException之后, 驱动程序可能会也可能不会继续处理批处理中的其余命令。 有没有办法强制执行继续,还是我需要更改我的程序,以便它将单独执行语句?

如何在Spring JDBC中获取当前的Connection对象

如何获取Oracle数据库的当前Connection对象? 我在Spring 3.0.5中使用JDBC模块。

Hibernate使用hibernate.jdbc.batch_versioned_data保存过时数据

环境 Hibernate 4.2 ojdbc6 – Oracle 11.2.0.3.0 JDBC 4.0 Oracle数据库11g 问题 我们遵循了许多建议来配置我们的Hibernate批处理方式如下: 100 true true true 我们检查了日志,并且看到生成的SQL语句已经批处理。 但是,如果两个事务同时修改相同的版本化实体行,Hibernate将成功提交它们,导致最后提交的事务中的冲突更新丢失(非冲突数据保存在两个事务中,因此最后一个事务离开数据库处于不一致的状态)。 令人惊讶的是,关于这种行为的文档很少。 Hibernate官方文档说: hibernate.jdbc.batch_versioned_data 如果JDBC驱动程序从executeBatch()返回正确的行计数,请将此属性设置为true。 打开此选项通常是安全的。 然后,Hibernate将使用批量DML来自动生成版本化数据。 默认为false。 通常安全 ? 在注意到整个版本控制被破坏之前,我们几乎将其发送到生产环境。 我们在五年前发布了一篇描述这种奇怪现象的博客 。 很明显,Hibernate很长一段时间没有做过任何事情。 Hibernate有这样的行为吗? 它从jdbc驱动程序获取更新行的计数未知的信息,为什么它不会抛出exception来指示它,而是留下版本检查已成功通过的印象?

为什么我对使用Oracle的JPA中的悲观锁定无法正常工作

我正在尝试为在不同JBoss节点中运行的cron作业实现某种信号量。 我正在尝试使用数据库(Oracle 11g)作为锁定机制,使用一个表来同步不同节点中的cron作业。 表非常简单: CREATE TABLE SYNCHRONIZED_CRON_JOB_TASK ( ID NUMBER(10) NOT NULL, CRONJOBTYPE VARCHAR2(255 Byte), CREATIONDATE TIMESTAMP(6) NOT NULL, RUNNING NUMBER(1) ); ALTER TABLE SYNCHRONIZED_CRON_JOB_TASK ADD CONSTRAINT PK_SYNCHRONIZED_CRON_JOB_TASK PRIMARY KEY (ID); 因此,当作业开始时,它会在表中搜索其cronjobtype的条目,并检查它是否已在运行。 如果不是,则将条目设置运行标志更新为true。 第一个选择是使用JPA CriteriaApi使用Hibernate和Pessimistic Lock进行的。 query.setLockMode(javax.persistence.LockModeType.PESSIMISTIC_WRITE); 所有这些操作都是在一次交易中完成的。 当一个进程运行时,它所做的查询如下: [Server:server-two] 10:38:00,049 INFO [stdout] (scheduler-2) 2015-04-30 10:38:00,048 WARN (Loader.java:264) – HHH000444: Encountered request for locking however […]

java.security.AccessControlException:拒绝访问(“java.security.SecurityPermission”“authProvider.SunMSCAPI”)

直到早上我的小程序中的一切正常。 我接受了Java更新,一切都停止了。 我正在使用applet处理数字证书。 这是我的堆栈跟踪。 我跟着一些oracle文章,但没有奏效。 https://blogs.oracle.com/java-platform-group/entry/liveconnect_changes_in_7u45 http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#trusted_library http:// www.oracle.com/technetwork/java/javase/7u45-relnotes-2016950.html Java Plug-in 10.45.2.18 Using JRE version 1.7.0_45-b18 Java HotSpot(TM) Client VM User home directory = C:\Users\vicky.thakor java.security.AccessControlException: access denied (“java.security.SecurityPermission” “authProvider.SunMSCAPI”) at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at sun.plugin2.applet.AWTAppletSecurityManager.checkPermission(Unknown Source) at sun.security.mscapi.KeyStore.engineLoad(KeyStore.java:755) at sun.security.mscapi.KeyStore$MY.engineLoad(KeyStore.java:62) at java.security.KeyStore.load(Unknown Source) at SecurityApplet.initializeBrowserKeyStore(SecurityApplet.java:162) at SecurityApplet.isCertificateInstalled(SecurityApplet.java:268) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native […]

ExecuteBatch方法在java中返回值为-2的数组

当我在java中执行executeBatch方法时,它返回一个很好的int数组,但是所有数组元素的值都是-2, 它应该是0或+ ve数字,显示受影响的行数,但它返回-2, 当我在数据库中检查它时,所有更新都成功完成。 请解释这-2的含义是什么,以及我如何找到受影响的行数。 谢谢,Deepesh Uniyal