Tag: oracle

用于oracle 12c的hibernate方言

我在我的spring mvc项目中使用hibernate,我想连接到oracle 12c数据库。 我使用了org.hibernate.dialect.Oracle12cDialect ,但是,这会返回给我org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.dialect.Oracle12cDialect] as strategy [org.hibernate.dialect.Dialect] 。 如何为oracle 12c设置方言? 我正在使用hibernate 4.3.9 。

Oracle:对另一个用户的架构的只读访问权限?

我有一个架构和一个同名的用户: products 。 对于开发,我想在Java应用程序中以只读模式使用它。 因此,我为只读应用程序创建了一个新用户。 CREATE USER PRODUCTS_READONLY IDENTIFIED BY PRODUCTS_READONLY; GRANT CREATE SESSION to PRODUCTS_READONLY; BEGIN FOR tab IN (SELECT table_name FROM all_tables WHERE owner = ‘PRODUCTS’) LOOP EXECUTE IMMEDIATE ‘GRANT SELECT ON PRODUCTS.’||tab.table_name||’ TO PRODUCTS_READONLY’; END LOOP; END; 运行应用程序我得到表不存在的错误。 在互联网上搜索解决方案,我遇到了SYNONYM 。 所以我添加了架构的同义词: CREATE SYNONYM PRODUCTS_READONLY FOR PRODUCTS; 现在,我在我的java应用程序中收到此错误: ERROR org.hibernate.util.JDBCExceptionReporter – ORA-17074 invalid […]

在Jdbc中执行绑定变量的SQL查询

我有这样的SQL查询。 select “DEPT”.”DEPTNO” as “DEPTNO1”, “DEPT”.”DNAME” as “DNAME1”, “DEPT”.”LOC” as “LOC1”, “EMP”.”COMM” as “COMM1”, “EMP”.”EMPNO” as “EMPNO1”, “EMP”.”ENAME” as “ENAME1”, “EMP”.”HIREDATE” as “HIREDATE1”, “EMP”.”JOB” as “JOB1”, “EMP”.”MGR” as “MGR1”, “EMP”.”SAL” as “SAL1” from “EMP” , “DEPT” where “DEPT”.”DEPTNO” in (:DeptNo) //这是Jdbc代码 Class.forName(DB_DRIVER); dbConnection = DriverManager.getConnection(DB_CONNECTION, DB_USER, DB_PASSWORD); Statement statment = dbConnection.createStatement(); result = statment.execute(query);//query is […]

Java连接到多个数据库

我正在创建一个连接到多个数据库的Java应用程序。 用户将能够从下拉框中选择要连接的数据库。 然后,程序通过将名称传递给创建初始上下文的方法来连接到数据库,以便它可以与oracle Web逻辑数据源进行通信。 public class dbMainConnection { private static dbMainConnection conn = null; private static java.sql.Connection dbConn = null; private static javax.sql.DataSource ds = null; private static Logger log = LoggerUtil.getLogger(); private dbMainConnection(String database) { try { Context ctx = new InitialContext(); if (ctx == null) { log.info(“JDNI Problem, cannot get InitialContext”); } database […]

Oracle JDBC瘦驱动程序SSL

我正在尝试为oracle jdbc配置SSL,我正在关注文档http://www.oracle.com/technetwork/topics/wp-oracle-jdbc-thin-ssl-130128.pdf 我在自己的机器上有oracle服务器和客户端。 这是POC。 我使用案例#1仅使用SSL进行加密。 我的listener.ora看起来像 LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCPS)(HOST = localhost)(PORT = 2484)) ) ) WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=C:\app\xxx\product\11.2.0\dbhome_2\server))) SSL_CLIENT_AUTHENTICATION=FALSE 我的sqlnet.ora看起来像 SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=C:\app\Priya\product\11.2.0\dbhome_2\server))) SSL_CLIENT_AUTHENTICATION=FALSE 我在oracle服务器上的tnsnames.ora ORCL = (DESCRIPTION = (ADDRESS […]

使用简单的jdbc调用将数组作为输入参数传递给oracle存储过程

这是我的oracle程序规范 CREATE OR REPLACE PACKAGE PKG_RE_FI AS PROCEDURE PRC_RE_FI_DETAILS(P_FAN_NO IN VARCHAR2, P_REF_ID IN TY_APP_REF_ID, P_COMMENTS IN VARCHAR2, P_BILLING_FLAG IN VARCHAR2, P_STATUS OUT VARCHAR2); END PKG_RE_FI; TY_APP_REF_ID是 CREATE OR REPLACE TYPE ty_app_REF_ID as varray(500) of obj_array_ref_id CREATE OR REPLACE TYPE obj_array_ref_id AS OBJECT( app_ref_id VARCHAR2(100) ) 我使用Spring JDBC Framework(SimpleJdbcCall对象)来执行上述过程。 下面是我声明的代码片段 this.reFIJdbcCall = new SimpleJdbcCall(dataSource).withCatalogName(“PKG_RE_FI”). withProcedureName(“PRC_RE_FI_DETAILS”).declareParameters(new SqlParameter(“P_FAN_NO”, […]

如何在没有ArrayIndexOutOfBoundsException的情况下通过executeBatch获取生成的密钥?

以下方法我想同时插入几个记录。 public void insert() { try { this.connection.setAutoCommit(false); PreparedStatement ps = this.connection.prepareStatement( “INSERT INTO COMPANY (NAME,Address) Values (?,?)”, new String[]{“ID”}); ps.setString(1, “X01”); ps.setString(2, “Address1”); ps.addBatch(); ps.setString(1, “Y01”); ps.setString(2, “Address2”); ps.addBatch(); //EXCEPTION OCCURS HERE int[] numUpdates = ps.executeBatch(); for (int i = 0; i < numUpdates.length; i++) { System.out.println("Execution " + i + "successful: " + […]

如何修复此错误:不支持SQL92?

我在java和Oracle的数据库连接中编写代码。 我运行一些脚本并得到此错误。我的脚本在toad中工作但在我的项目中不起作用 url包括。 . . . . DECODE (REF.target_type_code, ‘1’, wf.workflow_name, ’20’, reqtyp.request_type_name, ‘6’, prj1.project_name, ’59’, trootinfo1.NAME, ’55’, DECODE (document.checked_out_by, NULL, REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (knta_i18n_resource.get (‘DMS_REFERENCE_DETAIL_CHECKED_OUT.TXT’ ), knta_i18n_format_utils.format_date (document.checked_in_date, 3 ) ) ), document.version_number ) ), ‘{4}’ ) ) ) reference_detail, . . . 。 try { stmt = connection.createStatement(); rset = stmt.executeQuery(url) […]

oracle.jdbc.driver.T4CTTIrxd.readBitVector上的java.lang.ArrayIndexOutOfBoundsException(T4CTTIrxd.java:135)

尝试使用延迟加载访问集合并面临下面的问题,我无法弄清楚这个问题的原因是什么。 我在Spring和Driver 12.1.0.2 oracle 11.2.0.4.0上使用Hibernate3。 以下是错误日志。 java.lang.ArrayIndexOutOfBoundsException at oracle.jdbc.driver.T4CTTIrxd.readBitVector(T4CTTIrxd.java:135) at oracle.jdbc.driver.T4C8TTIrxh.unmarshalV10(T4C8TTIrxh.java:123) at oracle.jdbc.driver.T4C8Oall.readRXH(T4C8Oall.java:678) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257) at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:225) at oracle.jdbc.driver.T4CPreparedStatement.fetch(T4CPreparedStatement.java:1066) at oracle.jdbc.driver.OracleStatement.fetchMoreRows(OracleStatement.java:3716) at oracle.jdbc.driver.InsensitiveScrollableResultSet.fetchMoreRows(InsensitiveScrollableResultSet.java:1015) at oracle.jdbc.driver.InsensitiveScrollableResultSet.absoluteInternal(InsensitiveScrollableResultSet.java:979) at oracle.jdbc.driver.InsensitiveScrollableResultSet.next(InsensitiveScrollableResultSet.java:579) at com.ibm.ws.rsadapter.jdbc.WSJdbcResultSet.next(WSJdbcResultSet.java:3120) at org.hibernate.loader.Loader.doQuery(Loader.java:697) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236) at org.hibernate.loader.Loader.loadCollection(Loader.java:1994) at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:36) at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:565) at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:63) at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1716) at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:344) at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86) at org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:163) at org.apache.commons.collections.CollectionUtils.select(CollectionUtils.java:515) […]

解析PL / SQL代码以检查语法和语义错误

请考虑以下情况: 我在UI上有一个文本区域和一个按钮 。 用户将在Text-Area中输入PL / SQL块。 当用户按下Button时 ,我想检查该块中的语法和语义错误而不执行它。 我真的想要一个解决方案,我不需要再安装任何东西。 环境信息: Java 1.6.31 Oracle数据库11g