Tag: oracle

Java SQLData – 使用列表/数组转换为用户对象?

我正在学习如何使用SQLData并且在回送到我的对象时遇到问题。 我的Oracle类型看起来像这样: CREATE OR REPLACE TYPE activities_t AS OBJECT ( list activity_list_t; ); CREATE OR REPLACE TYPE activity_list_t AS TABLE OF activity_t; CREATE OR REPLACE TYPE activity_t AS OBJECT ( startDate DATE; endDate DATE; ); 我的Java看起来像这样: public class Activities implements SQLData { private String sqlType = “ACTIVITIES_T”; List list; // must have default ctor! public […]

从Java批量插入Oracle

我需要在Oracle中快速插入许多小行。 (5个领域)。 使用MySQL,我将插入分成100个组,然后对每组100个插入使用一个insert语句。 但是对于Oracle,用户反馈是质量插入(1000-30000之间)太慢。 有没有类似的技巧可以用来加速从Java到Oracle的程序化插入?

JPA – EclipseLink – 如何更改默认架构

我正在使用weblogic和oracle编写Web应用程序。 数据源是通过JNDI配置的,具有受限制的数据库用户,可以将DML转换为表,但不能使用DDL。 正如您可能猜到的那样,该用户不是这些表的所有者,但他被授予了访问权限。 假设他是GUEST_USER 该应用程序使用JPA + EclipseLink,并且已经定义了许多实体。 我不想在每个实体类中写入更改模式的属性。 我已经尝试过使用此代码的SessionCustomizer。 public class MyCustomizer implements SessionCustomizer{ @Override public void customize(Session session) throws Exception { session.executeNonSelectingSQL(“ALTER SESSION SET CURRENT_SCHEMA = OWNERS_SCHEMA”); } } 似乎有一些未初始化的东西,我得到一个空指针exception,我甚至不确定这是否是在使用它们之前更改连接的模式的方法。 任何样品或想法? 在此先感谢您的帮助!

Hibernate> CLOB> Oracle :(

我试图写一个超过4000个字符的Oracle clob字段。 这种接缝是一个常见问题,但解决方案似乎不起作用。 所以我从这里寻求帮助。 肮脏的信息: 使用Oracle 9.2.0.8.0 Hibernate3使用注释实现pojo Tomcat 6.0.16 Oracle 10.2.x驱动程序 C3P0连接池提供商 在我的persistence.xml中,我有: org.hibernate.ejb.HibernatePersistence getter和setter看起来像: @Lob @Column(name=”COMMENT_DOC”) public String getDocument(){ return get(“Document”); } public void setDocument(String s){ put(“Document”,s); } 我得到的例外是: SEVERE: Servlet.service() for servlet SW threw exception java.sql.SQLException: Io exception: Software caused connection abort: socket write error at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:334) at […]

如何在Hibernate HQL中使用Oracle的regexp_like?

我正在使用oracle 10g和hibernate 3.3.2 。 我以前在sql中使用过正则表达式,现在我第一次在HQL中使用它。 Query query = getSession().createQuery(“From Company company where company.id!=:companyId and regexp_like(upper(rtrim(ltrim(company.num))), ‘^0*514619915$’ )”); 这是我的hql,当我运行它没有regex_like函数时,它按预期运行。 但我无法使用regex_like表达式执行它。 它说.. 嵌套exception是org.hibernate.hql.ast.QuerySyntaxException:意外的AST节点:(靠近第1行,第66列…… 请帮助,如何在hibernate本机查询中使用regex_like ? 或其他一些替代方法。

Oracle上的Hibernate:将String属性映射到CLOB列

警告 :请参阅下面的答案。 问题是由10.2.0.4之外的类路径中存在的旧Oracle驱动程序引起的。 问题解决了。 留下这个问题的其余部分给后人。 我一直在抨击下面的事情。 这是从我的应用程序代码中提取的简单POJO: @Entity @Table(name = “PIGGIES”) public class Piggy { private Long id; private String description; public Piggy() {} @Id @GeneratedValue @Column(name = “PIGGY_ID”) public Long getId() { return id; } public void setId(Long id) { this.id = id; } @Lob @Column(name = “PIGGY_DESCRIPTION”) public String getDescription() { return description; […]

应该在哪里放置安装程序资源(wxs文件,dmg-script,图标)以及如何在部署自包含应用程序时配置maven antrun

我应该在哪里删除自定义配置的WIX安装程序配置文件以及如何使用antrun插件在基于maven的java fx项目中配置javafx packger工具? 我成功地使用默认的包资源制作了基本的MSI安装程序,它运行正常。 现在我已经将安装程序WXS文件配置为fxpackager底层,在创建MSI时使用wix工具集。 使用此自定义MSI安装程序和此如何在Windows上为javafx本机程序包图标设置自定义图标我已设法添加Icon。 但部署任务不是选择自定义配置文件,即WXS 我还阅读了官方指南http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html 我的项目结构看起来像这样 您可以看到我已在两个位置添加,即在java-client / package / windows /下。 我还在src / main / deploy / package / windows /中添加了。 正如相关问题所述。 但两种方式都不适用于我的maven ant插件。 我的思绪在爆炸。 从Oracle文档中他们指出“打包工具在恢复到内置资源之前在类路径上查找自定义资源。默认情况下,Java Packager将”。“(当前工作目录)添加到类路径中。因此,要替换应用程序图标,将自定义图标复制到运行javapackager的目录中的./package/macosx/DemoApp.icns(通常是根项目目录)。“ 我还尝试将$ {basedir}添加到a​​nt class-path看看我的pom的构建部分 org.apache.maven.plugins maven-compiler-plugin 3.1 ${maven.compiler.source} ${maven.compiler.target} maven-surefire-plugin 2.9 **/*Test.class maven-jar-plugin 2.3.1 default-jar none maven-antrun-plugin 1.7 create-temp-jar prepare-package run create-deployment-bundle install run com.oracle […]

无法将连接强制转换为oracle.jdbc.OracleConnection

为什么java.sql.Connection无法在下面的代码中强制转换为oracle.jdbc.OracleConnection? 我的主要目标是传递给Oracle连接新用户名并将其保存在例如’osuser’列的’SESSION’表中,因为我想跟踪数据库用户更改并在表中显示它。 @Repository public class AuditLogDAOImpl implements AuditLogDAO { @PersistenceContext(unitName=”myUnitName”) EntityManager em; @Resource(name = “dataSource”) DataSource dataSource; public void init() { try { Connection connection = DataSourceUtils.getConnection(dataSource); OracleConnection oracleConnection = (OracleConnection) connection; //Here I got cast exception! String metrics[] = new String[OracleConnection.END_TO_END_STATE_INDEX_MAX]; metrics[OracleConnection.END_TO_END_CLIENTID_INDEX] = “my_new_username”; oracleConnection.setEndToEndMetrics(metrics, (short) 0); java.util.Properties props = new java.util.Properties(); props.put(“osuser”, “newValue”); […]

Java:如何将CLOB插入oracle数据库

我需要将XML文件内容写入oracle数据库,其中列是CLOB数据类型。 我该怎么做?

oracle jdbc中的PreparedStatement和setTimestamp

我在where子句中使用PreparedStatement和Timestamp: PreparedStatement s=c.prepareStatement(“select value,utctimestamp from t where utctimestamp>=? and utctimestamp<?"); s.setTimestamp(1, new Timestamp(1273017600000L)); //2010-05-05 00:00 GMT s.setTimestamp(2, new Timestamp(1273104000000L)); //2010-05-06 00:00 GMT ResultSet rs = s.executeQuery(); if(rs.next()) System.out.println(rs.getInt("value")); 当我在客户端计算机上有不同的时区时,我得到的结果是不同的。 这是Oracle jdbc中的错误吗? 还是纠正行为? Oracle数据库版本是10.2,我已经尝试使用oracle jdbc瘦驱动程序版本10.2和11.1。 参数是Timestamp,我预计在途中不会进行任何时间转换。 数据库列类型是DATE,但我也使用TIMESTAMP列类型检查它,结果相同。 有没有办法达到正确的结果? 我无法将整个应用程序中的默认时区更改为UTC。 谢谢你的帮助