草庐IT

oracle-db

全部标签

java - SQL异常 : Protocol Violation in oracle

我收到“违反协议(protocol)”的消息。我有一个运行在RedHatLinux上的应用程序。数据库和应用程序共存于机器上。使用的Oracle版本:Oracle11gR2(11.2.0.3.0)使用的JDBC驱动程序:12.1.0.1使用的Java:jdk1.7.0.6532位我遇到过许多论坛,其中指出此错误是驱动程序问题,但在所有这些论坛中,使用的oracle版本更高,驱动程序版本更旧,更改驱动程序解决了问题。但就我而言Oracle版本较低,但驱动程序版本较高。那么,在这种情况下,驱动程序版本较高会不会有问题?此外,当达到数据库上的最大连接数时,也会出现这种违反协议(protoco

java - Oracle JDBC 字符集和 4000 个字符限制

我们正在尝试将UTF-16编码的字符串存储到AL32UTF8Oracle数据库中。我们的程序在使用WE8MSWIN1252作为字符集的数据库上运行完美。当我们尝试在使用AL32UTF8的数据库上运行它时,它会遇到java.sql.SQLException:ORA-01461:canbindaLONGvalueonlyforinsertintoaLONGcolumn.在下面的测试用例中,只要我们的输入数据不会太长,一切都可以正常工作。输入的字符串可以超过4000个字符。我们希望保留尽可能多的信息,即使我们意识到必须切断输入。我们的数据库表是使用CHAR关键字定义的(见下文)。我们希望这将

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

我正在使用oracle10g和hibernate3.3.2。以前在sql中用过正则表达式,现在第一次在HQL中使用。Queryquery=getSession().createQuery("FromCompanycompanywherecompany.id!=:companyIdandregexp_like(upper(rtrim(ltrim(company.num))),'^0*514619915$')");这是我的hql,当我在没有regex_like函数的情况下运行它时,它会按预期运行。但是我无法使用regex_like表达式来执行它。它说..nestedexceptioniso

java - Oracle 10g 中使用哪种数据类型来存储 DateTime?

Oracle10g数据库中用什么数据类型来存储日期时间(既有日期也有时间)?我读过一些地方(可能是错误的)“Oracle10g中的日期数据类型可以存储日期时间”,但是当我尝试这样做时,事情似乎并没有发生。TheDATEdatatypeisadatetimedatatype.Itstoresadateandatime.ThedateportionisbasedonthenumberofdayssinceJanuary1,4712BC.Thetimeportionisbasedonthenumberofsecondssincemid-night.Thelink我通过Java作为前端并使用以

java - 是否可以使 oracle 数据库程序忽略提交语句?

我正在开发与遗留系统集成的Java应用程序,该系统编写为OraclePL/SQL。不幸的是我无法改变这个遗留系统。该系统的问题在于,有时COMMIT语句会写入过程。但这导致我无法在我的应用程序级别正确处理事务。那么是否可以让oracle数据库程序忽略commit语句呢?我发现在连接开始时执行ALTERSESSIONDISABLECOMMITINPROCEDURE会在PL/SQL过程尝试提交时导致异常。但是是否可以让Oracle在不更改PL/SQL代码的情况下忽略提交? 最佳答案 我认为你做不到。您必须向这些过程添加一个参数,如默认值

java - Maven ojdbc jar依赖报错: package oracle. jdbc不存在

标题我正在尝试在我的JavaEE6应用程序(类名VisualizerRepository.java)中使用jdbc连接,我在nexus存储库中有jdbc驱动程序该类必须执行一个存储过程并打印该过程的结果。由于JPA2.0不支持调用过程,因此我使用jdbc。包com.nfsmith.crm.data.repository;importjava.sql.CallableStatement;importjava.sql.Connection;importjava.sql.SQLException;importjavax.sql.DataSource;importoracle.jdbc.Ora

java - 将 java.long 映射到 oracle.Number(14)

我有数据类型为数字(15)的数据库列,并且我在java类中有相应的字段作为long。问题是我如何使用java.sql.Types映射它。Types.BIGINT可以吗?或者我应该使用其他东西吗?附言:我无力在Java类和数据库中更改数据类型。 最佳答案 来自thislink它说java.sql.Types.BIGINT应该用于Java中的long到SQL(Oracle)中的Number。附上表格的屏幕截图以防链接失效。 关于java-将java.long映射到oracle.Number(

java - DB2 SQL 错误 : SQLCODE=-204, SQLSTATE=42704

我在DB2中创建了名为“TestDB”的本地数据库,然后创建了名为“TestTable”的表。我发现该表放在架构名称为“yasmin”下。我正在尝试使用JDBC连接到DB2数据库,但出现此异常RSQLExceptioninformation[1/4/1411:32:59:289EST]0000004dSystemErrRErrormsg:DB2SQLError:SQLCODE=-204,SQLSTATE=42704,SQLERRMC=DB2ADMIN.TESTTABLE,DRIVER=3.61.86[1/4/1411:32:59:290EST]0000004dSystemErrRSQL

java - Java 6 中包含 Derby/Java DB 吗?

我在几个地方读到Derby/JavaDB包含在JavaSE6中,例如http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/beta2.html但是我找不到没有安装它的人使用过它,包括它在类路径中等等。这是怎么回事?如果包含,为什么每个人都安装另一个副本? 最佳答案 您需要JDK,而不是JRE。 关于java-Java6中包含Derby/JavaDB吗?,我们在StackOverflow上找到一个类似的问题

java - 使用oracle jdbc连接时如何获取数据库模式名称?

我正在尝试使用DatabaseMetaData.getTables()方法获取所有数据库表。但是这种方法需要数据库模式名称模式。是否可以获取当前数据库连接的架构名称? 最佳答案 当前连接的标准模式是您用于登录的用户名。因此,如果您的用户是SCOTT,则必须使用SCOTT来DatabaseMetaData.getTables()。您可以通过DatabaseMetaData.getUserName()获取用户名。但请记住,在JDBC驱动程序中完成的模式/用户名比较是区分大小写的,通常用户名是大写的。我不能100%确定DatabaseMe