Tag: oracle

尝试传递自定义oracle类型对象映射时,名称模式无效

Java spring自定义Oracle类型作为参数并获得以下错误。 我不明白无效名称模式是什么意思? 任何帮助赞赏。 org.springframework.jdbc.UncategorizedSQLException: ### Error updating database. Cause: java.sql.SQLException: invalid name pattern: UPSELL.mkt_list_tab ### The error may involve com.comcast.upsell.dao.ProviderAndRegionalDao.getCorpsToMarketsList-Inline ### The error occurred while setting parameters ### SQL: call upsell_tx_etl_report.GET_OFFER_CORPS_TO_MARKETS( ?, ?, ? ) ### Cause: java.sql.SQLException: invalid name pattern: MY_SCHEMA.mkt_list_tab ; uncategorized SQLException for SQL []; SQL state [99999]; error code [17074]; […]

使用Oracle序列时,Hibernate不会生成标识符

我有以下映射 @Entity @SequenceGenerator(name=”sacpSequenceGenerator”, sequenceName=”SACP_SEQ”) public class Sacp { private Integer id; @Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator=”sacpSequenceGenerator”) public Integer getId() { return this.id; } // other setter’s and getter’s } 根据SACP表进行映射 ID NUT NULL NUMBER(4) 当我试图保存一个Sacp实例时,Hibernate抱怨道 ORA-01438:大于指定精度的值允许此列 即使使用Long而不是Integer,也会抛出相同的错误 我该怎么做才能解决这个问题?

在java中创建包级关联数组

是否可以创建包级别oracle关联数组的java表示。 例如,给出以下内容: CREATE OR REPLACE PACKAGE MyPackage AS TYPE t_numbers IS TABLE OF NUMBER INDEX BY PLS_INTEGER; 我发现我不能写下面的java: ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor(“MyPackage.t_numbers”, connection); (抛出SQLException“无效的名称模式”)。 ArrayDescriptor引用包级关联数组的正确语法是什么? 这样的事情甚至存在吗?

Hibernate:如何调用返回varchar的存储函数?

我试图使用Hibernate从Java调用Oracle9i数据库中的遗留存储函数。 该函数声明如下: create or replace FUNCTION Transferlocation_Fix (mnemonic_code IN VARCHAR2) RETURN VARCHAR2 经过几次失败的尝试和广泛的谷歌搜索后,我在Hibernate论坛上发现了这个线程 ,它提出了这样的映射: select Transferlocation_Fix(:mnemonic) as retVal from dual 我执行它的代码是 Query query = session.getNamedQuery(“TransferLocationFix”); query.setParameter(“mnemonic”, “FC3”); String result = (String) query.uniqueResult(); 并且生成的日志是 DEBUG (org.hibernate.jdbc.AbstractBatcher:366) – – about to open PreparedStatement (open PreparedStatements: 0, globally: 0) DEBUG (org.hibernate.SQL:401) – – select Transferlocation_Fix(?) as retVal from […]

如何调用从JPA返回值的自定义Oracle函数

我在oracle中有一个自定义函数,在删除记录后返回一个数字。 我可以在sql_plus中获取一个值,例如 call my_function(4) into :out_number; 其中out_number是一个定义为数字的变量。 当我执行“PRINT OUT_NUMBER”时,我可以validationout_number是否有值。 我的问题是如何从JPA调用此函数。 我试过了 Query query = em.createNativeQuery(“{call my_function(?)}”); query.serParameter(1, 4); return query.executeUpdate(); 并且基本上没有定义my_function得到错误。 如何在CALL … INTO SQL_PLUS上获得返回值? 如果这种方法不可取,有人可以推荐一下吗? JPA是目前我唯一的选择。 我可以创建一个存储过程,但我不确定是否可以从中获取返回值,因为不支持OUT参数。 感谢您的帮助!

JPA – EclipseLink – 如何在运行时配置数据库模式名称

我实现了一个使用Oracle DB的Web应用程序(JEE6,EJB WebProfile)。 我的问题是,我需要更改已使用的数据库架构(名称),而无需重新编译/重新打包应用程序。 所以我想要的(这只是一个想法,也许有人有一个更好的),是在服务器中有一些配置(JNDI),具体的Schema名称。 但是如何配置Eclipse Link在运行时使用其他模式名称? 细节: 目前我使用orm.xml文件来指定Schema名称。 但是应用程序使用三个不同的Schema名称(一个用于开发,一个用于集成测试,一个用于生产),因此我需要编译和打包(maven)应用程序3次。 我使用Oracle DB在Glassfish上运行JEE6 EJB WebProfile应用程序,数据库连接由Application Server处理并通过JNDI提供给应用程序。 是否有任何机构知道如何在运行时配置数据库模式名称。

如何在oracle数据库中存储BigInteger值

我使用JDBC将Java程序连接到Oracle数据库。 我想在数据库中存储BigInteger值(512位)。 列的类型应该是什么? 我是这样想的: 我在数据库中选了一个数字类型的列。 我将BigInteger转换为BigDecimal如下所示: BigInteger b=new BigInteger(“5779857570957802579079”); Number n =b; BigDecimal d=(BigDecimal)n; PreparedStatement pstmt=con.prepareStatemant(“insert into database values(?,?)”); pstmt.setString(1,”john”); pstmt.setBigDecimal(2,d); 我收到以下exception: javax.servlet.ServletException:java.lang.ClassCastException:java.math.BigInteger无法强制转换为java.math.BigDecimal 根本原因 java.lang.ClassCastException:java.math.BigInteger无法强制转换为java.math.BigDecimal 这段代码片段有什么问题吗? 如果有,请建议其他方法。

java.sql.SQLException:Ioexception:在与oracle的JDBC连接期间从读取调用中减去了一个

嗨,当我尝试使用我的java示例代码连接oracle时,我是java的新手,我得到了上述exception 我的代码是 import java.sql.*; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class DbConnectivity extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { Class.forName(“oracle.jdbc.driver.OracleDriver”); Connection con = DriverManager.getConnection(“jdbc:oracle:thin:@localhost:8080:orcl”, “system”, “tiger”);\\ The Exception thrown here Statement stmt = con.createStatement(); ResultSet rst = stmt.executeQuery(“select * from users”); System.out.println(rst.getString(1)); […]

Hibernate Oracle表空间注释

我正在注释我的DAO并使用hibernate3:hbm2ddl来生成ddls。 有没有办法注释表空间?

如何将字符从Oracle编码为XML?

在我的环境中,我使用Java将结果集序列化为XML。 它基本上是这样的: //foreach column of each row xmlHandler.startElement(uri, lname, “column”, attributes); String chars = rs.getString(i); xmlHandler.characters(chars.toCharArray(), 0, chars.length()); xmlHandler.endElement(uri, lname, “column”); 在Firefox中,XML看起来像这样: 10069 sd FCVolume 但是当我解析XML时,我得到了a org.xml.sax.SAXParseException:字符引用“ &#26 ”是无效的XML字符。 我现在的问题是:我必须更换哪些字符,或者如何编码我的字符,它们将是有效的XML?