Tag: oracle

使用Ibatis 2.3重新获取CLOB数据

我正在尝试从oracle数据库中检索clob数据,如reports.xml中所示。我正在使用oracle jdbc驱动程序版本“ Oracle JDBC驱动程序版本 – 10.0.2.0.0 ”。 以下是我收到的错误,请告诉我,如何解决这个问题。 2011-08-31 13:03:40,790 WARN [org.apache.struts.chain.commands.AbstractExceptionHandler] (http-10.12.230.222-8080-1) Unhandled exception com.ibatis.common.jdbc.exception.NestedSQLException: — The error occurred in sa/mobily/telecop/dao/config/GenericReportQuery.xml. — The error occurred while applying a parameter map. — Check the runReportQuery-InlineParameterMap. — Check the parameter mapping for the ‘QUERY’ property. — Cause: java.sql.SQLException: Data size bigger than max size for this […]

数据库连接在与DB相同的PC上进行开发时始终断开连接

我正在开发一个JSP应用程序,我使用Oracle Express 10g作为数据库。 我注意到当我尝试在同一台PC上进行开发时,我只能进行多次页面请求和转换,并立即获得IOexception。 但是我在不同的PC上下载相同的代码并连接到所述数据库PC。 它不会立即踢我。 如果有任何其他设置需要在这里设置,任何想法? 我使用Apache Tomcat 5.5和Eclipse作为IDE。 [ 2009/10/05 17:59:02 The error occurred by XXXClass. ] java.sql.SQLException: I/O Exception。: Connection reset by peer: socket write error at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:133) at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:115) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:221) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:293) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:646) at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:1057) at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:1139) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1471) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3874) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3944) at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:3613) at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)

java.net.Inet6Address.getByName字面上输出并查看地址是否存在

我不知道java但是从这个问题可以看出( Oracle正则表达式(REGEXP_LIKE)太长错误 – ORA-12733 )如果IPv6地址格式正确,java似乎最容易validation。 我尝试了正则表达式,接近尾声,但这是一场噩梦,PL / SQL的表达式太长了。 我用Oracle的方式工作。 我只想validation格式,而不是地址确实存在。 java.net.Inet6Address.getByName字面上也是如此,看看地址是否存在? 文档说…( http://docs.oracle.com/javase/1.5.0/docs/api/java/net/InetAddress.html#getByName ( java.lang.String) ) “ 如果提供了文字IP地址,则只检查地址格式的有效性。 ” 我正在接受它,因为它没有ping,我理解正确吗?

JDBC:Oracle Application Server和“网络适配器无法建立连接”错误

我收到错误:“网络适配器无法与Oracle应用服务器10g中部署的Web应用程序建立连接”。 数据库是本地的,因此不应存在任何连接问题。 第一次测试:我可以连接到DB没有问题从SQL加,运行查询等。第二次测试:我可以从服务器上本地安装的JDeveloper连接数据库没问题,并运行查询等没问题。 这适用于简短的JDBC scring和长的scring(如下所示)。 JDBC:预言:瘦:@(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST =本地主机)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = ABCD)(SERVER = DEDICATED))) 然而,当我运行Web应用程序时,它会出现上述错误。 对我来说似乎太通用了。 有关如何解决这个问题的任何建议? 我假设Oracle在某处记录了失败的连接尝试,但我在数据库alert.log文件中找不到任何相关内容。 问题可能是应用程序使用旧的jsdk,但我认为然后会给出一些版本不匹配错误而不是“网络连接”消息。 编辑:我不知道这是一个OAS问题还是特定Web应用程序的问题,我想首先想出来,因为它似乎应该很容易。 在WebSphere中,有一个“测试连接”按钮来指定您添加的目标数据源,但似乎OAS10中没有这样的function? 不知何故,我认为必须有,而我只是错过了,因为我不是美洲国家组织的专家。 编辑2:我在远程计算机上安装了JDevelop并且没有任何问题连接到数据库,因此我确信这不是数据库连接本身的问题 – 看起来它必须是OAS中的问题?

无法在数据库中保存clob数据类型(Struts,Spring,Hibernate)

@Column(name=”transpired”) @Lob private String transpired; public String getTranspired() { return transpired; } public void setTranspired(String transpired) { this.transpired = transpired; } 我尝试在我们的模型类中使用以下代码。 “透明”是一个包含长文本消息(报告)的字段。 查看“报告”时,它会从数据库中检索数据并在我们的UI中正确显示。 但是,当我保存(编辑或创建)报表时,数据库上的字段保存为(null)。 关于如何保存长文本的任何想法? 我们之前使用的是varchar2(4000),但大多数报告都超过4000个字符。 谢谢。 编辑:我正在使用Oracle 10g。 列类型是CLOB。

优化查询:DBMS_METADATA.GET_DDL(Oracle)

我想得到所有表的所有表定义。 而且我想快速完成它(它是我运行很多的脚本的一部分) 我正在使用oracle 11g,我有700个表。 在一个简单的jdbc代码上,它需要4分钟,并执行: s = con.statement(“select DBMS_METADATA.GET_DDL(object_type,object_name) from user_objects where object_type = ‘TABLE’); s.execute(); rs = s.getResultSet(); while(rs.next()){ rs.getString(1); } 所以我想优化这段代码并达到20秒左右。 我已经通过创建14个线程达到40-50秒,每个线程打开与数据库的连接并使用rownum上的mod读取部分信息。 但这还不够。 我正在考虑这些方向: http://docs.oracle.com/cd/B10501_01/java.920/a96654/connpoca.htm#1063660 – 连接缓存。 它可以通过用connectionCaching替换我的14个连接来帮助加快速度吗? 是否可以在KEEP缓冲区缓存区域中保持此函数访问的表? 无论如何索引一些信息在这里? 任何其他建议将不胜感激。 谢谢

从Java创建并将SYS_REFCURSOR作为输入参数传递给Oracle过程

我必须与具有SYS_REFCURSOR作为输入参数的外部Oracle过程进行通信: 过程merge_objects(varchar2中的p_table_name,varchar2中的p_id_array,SYS_REFCURSOR中的p_cur_data) 我需要根据从客户端收到的数据传递SYS_REFCURSOR参数。 有没有办法在Java中创建这样的参数?

java.sql.SQLException:ORA-01843:不是有效月份

将数据插入我的oracle数据库时出现以下错误。 java.sql.SQLException: ORA-01843: not a valid month 在数据库中日期为:dd-MMM-yy(06-MAR-12) 我通过以下方法将06-03-2012转换为dd-MMM-yy: String s=”06-03-2012″; String finalexampledt = new SimpleDateFormat(“dd-MMM-yy”).format(new SimpleDateFormat(“dd-MM-yyyy”).parse(s)); 所以我得到了06年3月12日,这与上面的数据库日期格式相同,但我仍然得到错误。 我插入为: 在index.jsp中 String todaydate=””; Calendar calendar1 = Calendar.getInstance(); SimpleDateFormat dateFormat = new SimpleDateFormat(“dd-MM-yyyy”); todaydate = dateFormat.format(calendar1.getTime()); <input type="text" name="datename" value="”/> 在servlet中(doPost) String s=request.getParameter(“datename”); PreparedStatement ps=con.prepareStatement(“insert into tablename(rest_dt, othercolname) values (to_date(?, ‘dd-mm-yyyy’), ?)”); ps.setString(1, s); ps.setString(2, otherstringdata); int […]

JavaFX:从main 以外的方法调用’Application.launch(args)’

题 我可以打电话给’Application.launch(args); ‘从主要以外的方法? 如果是这样,你能提供一个例子,牢记以下背景吗? 背景 我正在构建一个学习/教学,命令/文本应用程序,它教会用户关于数组。 在主类结束时,在运行主要应用程序内容之后,我调用’ViewSiteOrExit.viewSitePromptPuSVM(); ‘,它让用户反对:在arrays上打开Oracle页面,或退出游戏。 如果用户希望查看Oracle页面,我会调用’OpenSite。??????????(); ‘,这将在FX VBox中打开页面。 如果没有,退出。 这是我第一次使用FX,我很累,所以我的代码的任何观察和建议都会有所帮助,因为我可能会遗漏一些东西。 但我的主要问题是我怎么能/应该称之为’OpenSite。??????????(); ‘,包含’Application.launch(args);的方法,如果不是来自我的主? 如果必须从main调用它,我该怎么办,只有在应用程序的主要部分运行之后,并且只有在用户输入’y’时才能这样做? 下面是提示用户查看网站或退出游戏的.java,以及打开页面的.jave。 package mrArray; import javafx.application.Application; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.layout.VBox; import javafx.scene.web.WebEngine; import javafx.scene.web.WebView; import javafx.stage.Stage; public class OpenSite extends Application { VBox vBoxOF = new VBox(); public static void main(String[] args) { Application.launch(args); } @Override […]

Apple贬低Java。 Apple特定的自定义设置是否仍可与其他JRE / JVM一起使用?

Apple“弃用”Java并将在未来停止支持它。 假设Oracle将在Mac上接管Java的支持,是否有办法确保特定于Apple的黑客“将菜单栏置于屏幕顶部”或“默认使用本机主题”将得到支持在针对Apple平台的其他JRE / JVM上采用相同的方式吗? 是否有一些行业标准或优先权如何处理这些情况,或者这对个别开发人员来说是一个额外的负担(==还有另一个运行时要测试)? 通常的做法是从前一个实现的角度出发,并将错误复制到像Apple实现一样的行为吗? 或者更有可能的是,工程将从一些像OpenJDK这样的“标准”Java开始,并将它适应Mac OSX系统,引入不同的错误/ API /设置以集成到本机平台? 虽然Apple的举动和甲骨文的反应的细节仍然不明确,但如果有“大公司在这些情况下表现得如何”的经验能够加强并提供一些见解,我将非常高兴。