Tag: oracle

statement.execute()在PL / SQL结束时返回Slash错误

执行pl / sql时获取错误: ORA-06550: line 1, column 316: PLS-00103: Encountered the symbol “/” The symbol “/” was ignored. PLSQL示例: DECLARE SQL1 VARCHAR2 (1500); SQL2 VARCHAR2 (1500); BEGIN SQL1 := ‘INSERT INTO das_html_caption VALUES (”test_test”)’; SQL2 := ‘DELETE FROM das_html_caption where wording = ”test_test”’; EXECUTE IMMEDIATE SQL2; EXECUTE IMMEDIATE SQL1; EXECUTE IMMEDIATE SQL2; COMMIT; END; / […]

如何在不将完整文件加载到内存的情况下将大文件插入BLOB(Oracle)?

我们在临时文件系统上存储了一个大文件,我需要的是使用BufferedInputStream读取那个巨大的文件(可能是几个或几个演出),如下所示 InputStream is = is = new BufferedInputStream(new FileInputStream(file)); 这将有效地减少读取文件的时间,并希望将文件保存到DB(Oracle)中的BLOB。 这是真正的问题: 我不希望文件被完全读入我的内存,因为我登陆内存不足并想要读取块并将文件内容作为字节数组推送到我的DB BLOB列。 基本上,我的想法是杀死将完整文件加载到内存并实现将文件保存到BLOB(可能附加到现有BLOB内容等)的头顶 有没有办法实现这一目标? PS:我们使用Hibernates来保存BLOB文件

使用不同的jdbc驱动程序连接到多个数据库

我需要编写一个基于守护进程的java进程(非基于Web),它将连接到Oracle 10G数据库,从中读取一些数据,然后连接到SQL Server数据库并将数据写入表。 听起来很简单,但我对此有几个疑问。 我需要有两个jdbc驱动程序,一个用于连接到Oracle数据库,另一个用于连接到sql server数据库。 sql server jdbc驱动程序是jtds jdbc驱动程序( http://jtds.sourceforge.net/ ),对于Oracle我将使用标准的oracle jdbc驱动程序。 我可能会遇到类路径中可用的两个驱动程序的任何问题吗? 我的猜测是我需要的是一个ConnectionManager类来管理连接和一个客户端DAO类,它将调用相关的方法来获取它需要的连接,具体取决于它是从Oracle读取还是写入SQL Server。 这是一种合理的方法还是有更好的设计/模式? 编辑 好吧,我试图整理一个快速的设计解决方案。 见下图 我认为我遇到的问题是如何提交。 这是处理流程 InvoiceBD从工厂类获取Oracle连接,并调用InvoiceUploadDAO.readData将Oracle连接对象传递给它。 InvoiceBD从工厂类获取SQL Server连接,并调用InvoiceUploadDAO.writeData,将SQL Server连接对象传递给它。 InvoiceBD重用Oracle连接将InvoiceUploadDAO.update状态调用为Oracle数据库上的“完成”设置状态。 InvoiceBD提交Oracle连接。 InvoiceBD提交SQL Server连接。 或者如果出现问题,两个连接对象都会回滚。 那个听起来是对的吗? 谢谢

Java不运行带参数的prepare语句

我正在使用PreparedStatement查询我的表。 不幸的是,我无法这样做。 我的代码就像这样简单: PreparedStatement preparedStatement = connection.prepareStatement( “Select favoritefood from favoritefoods where catname = ?”); preparedStatement.setString(1, “Cappuccino”); ResultSet resultSet = preparedStatement.executeQuery(); 抛出的错误是java.sql.SQLException: ORA-00911: invalid character 。 好像它永远不会通过给定的参数运行。 谢谢你的时间。 我花了一天时间来调试这个但仍然不成功。 如Piyush所述,如果我在语句结尾处省略分号,则会抛出新错误。 java.sql.SQLException: ORA-00942: table or view does not exist 。 但我可以向你保证,这张桌子确实存在。 UPDATE 射击。 我编辑了错误的sql。 现在它成功了。 你的时间。

使用Oracle Wallet身份validation从Spring-jdbc连接到Oracle DB

我使用Spring-jdbc和org.apache.commons.dbcp.BasicDataSource使用用户名和密码进行连接。 我想使用BasicDataSource,因为我只有一个连接。 我有这个代码: 现在我必须使用基于Oracle Wallet的身份validation,在没有Spring的简单应用程序测试中我没有问题,但我无法将此新身份validation与Spring集成。 有谁知道我怎么做?

在oracle.jdbc.driver.T4CConnection上找到的锁定对象

我正在使用JMC执行应用程序分析,我没有看到任何锁定/线程争用,如下面的屏幕截图所示。 我在下面运行SQL(每隔几秒)也没有返回任何结果。 select (select username from v$session where sid=a.sid) blocker, a.sid, ‘ is blocking ‘, (select username from v$session where sid=b.sid) blockee, b.sid from v$lock a, v$lock b where a.block = 1 and b.request > 0 and a.id1 = b.id1 and a.id2 = b.id2; 什么可能是锁数据库连接的原因? 它可能是数据库记录/表锁吗? 下面是我在程序执行期间提取的线程转储,它似乎永远在运行。 java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at […]

Oracle数据库在到达列中指定的时间时发送通知/调用java方法

我有一张表有事件详情。 新记录将由另一个进程连续插入此表。 该表有一个Event-end-time列。 我必须设计一种机制来调用java方法来处理事件到达事件结束时间。 我的一些选择是: 连续查询数据库(每1分钟)并找到要处理的下一个最新报告,并在到达结束时间时调用它。 弄清楚ORACLE数据库中是否有任何内置机制向java应用程序发送通知/ Oracle itslef在到达事件结束时调用java方法。 如果记录是插入/更新/删除(基于触发器),我已经看到了通知选项,但是到目前为止,如果通知条件是自定义的(如果达到了记录列中的时间),我没有运气。 任何有关这方面的建议将不胜感激。 此致,迪帕克

将对象从Java传递到Oracle过程

要将数组传递给oracle过程,我们使用ArrayDiscriptor和ARRAY对象。 我必须使用哪些对象将对象传递给存储过程?

查看oracle app并获取:java.lang.ClassNotFoundException:oracle.forms.engine.Main

我正在尝试调试oracle表单应用程序。 在生产中,当我加载应用程序时,我收到一个错误:java.lang.ClassNotFoundException:oracle.forms.engine.Main 我不确定导致这个问题的原因。 我现在一直在搜索论坛半天,看起来它可能与java版本问题有关。 我已经包含了(略微修改以保护我的公司)java控制台输出,如果我正确读取它,看起来像证书需要重新打包。 但是,当我查看该网站的证书时,它表示已通过verisignvalidation。 我正在使用IE 9来尝试查看表单应用程序,我得到一个:java.lang.ClassNotFoundException:oracle.forms.engine.Main 在Java控制台中,我得到以下输出: Java Plug-in 1.6.0_45 Using JRE version 1.6.0_45-b06 Java HotSpot(TM) Client VM User home directory = C:\Users\my_username network: Cache entry not found [url: https://company_site.ca:4446/forms/java/frmall.jar, version: null] network: Connecting https://company_site.ca:4446/forms/java/frmall.jar with proxy=DIRECT network: Connecting http://company_site.ca:4446/ with proxy=DIRECT javax.net.ssl.SSLException: Received fatal alert: unexpected_message at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source) at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source) […]

CachedRowSet比ResultSet慢?

在我的java代码中,我使用select语句访问oracle数据库表。 我收到很多行(大约50.000行),所以rs.next()需要一些时间来处理所有行。 using ResultSet, the processing of all rows (rs.next) takes about 30 secs 我的目标是加快这个过程,所以我改变了代码,现在使用CachedRowSet : using CachedRowSet, the processing of all rows takes about 35 secs 我不明白为什么CachedRowSet比普通ResultSet慢,因为CachedRowSet一次检索所有数据,而ResultSet每次调用rs.next都会检索数据。 以下是代码的一部分: try { stmt = masterCon.prepareStatement(sql); rs = stmt.executeQuery(); CachedRowSet crset = new CachedRowSetImpl(); crset.populate(rs); while (rs.next()) { int countStar = iterRs.getInt(“COUNT”); … } } finally { […]