Tag: oracle

Java Oracleexception – “列表中的最大表达式数为1000”

我将一个字符串列表传递给我的查询(写入SQL查询)以获取所需的数据。 但是我得到了这个例外: ora-01795列表中的最大表达式数为1000 我检查了传递给查询IN参数的列表中有超过1000个条目。

使用JDBC for Oracle迭代ResultSet需要花费大量时间大约16秒?

while( result_set.next() ) { … } 我使用System.nanoTime()并计算时间,每次迭代所用的时间以毫秒为单位,但整个循环大约需要16秒。 我正在考虑条件测试花费大量时间的可能原因,即next()函数。 仅供参考我正在连接到远程数据库服务器,并且我使用上述方法再次计算完成的选择查询(以毫秒为单位)。 有关为什么会发生这种情况的原因以及如何将结果集迭代到最多一秒的时间? 编辑: 我正在处理大约4000条记录,每条记录包含大约10列,每列大约有10个字符 EDIT2谢谢setFetchsize()做了神奇,真棒,真棒

Oracle表更改监视器

我有一个连接到远程Oracle数据库视图的java应用程序。 有没有人知道在Java中监视此表的更改方式? 即如果有更新插入等我需要做出反应。

启用JDBC的日志记录

我试图通过在eclipse IDE中连接到Oracle数据库来使用我的JDBC程序启用日志。 我已经完成了这个SO后JDBC记录到文件,然后我创建了下面的java程序并从我的eclipse IDE运行它,但我无法看到JDBC驱动程序类生成的任何日志。 import java.io.File; import java.io.FileInputStream; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Properties; import java.util.logging.LogManager; import java.util.logging.Logger; public class Logging { static Logger log = Logger.getLogger(Logging.class.toString()); static Connection con = null; public static void main(String[] args) throws SQLException, ClassNotFoundException { System.setProperty(“oracle.jdbc.Trace”, Boolean.TRUE.toString()); System.setProperty(“java.util.logging.config.file”, “OracleLog.properties”); log.info(“Test Message”); enableLogging(false); getConnection(); closeConnection(); } […]

Java多播生存时间始终为0

我在设置数据报包上的TTL时遇到问题。 我在将数据包发送到multicastSocket之前调用数据包上的setTTL(…)方法但是如果我使用ethereal捕获数据包,则TTL字段始终设置为0

Java Oracle localhost连接错误(ORA-12505)

我正在尝试连接到当前计算机上的数据库。 import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Main { public static void main(String[] argv) throws Exception { Connection connection = null; try { // Load the JDBC driver String driverName = “oracle.jdbc.driver.OracleDriver”; Class.forName(driverName); // Create a connection to the database String serverName = “localhost”; String portNumber = “1521”; String sid = “xe”; String […]

如何使用Java / JDBC在Oracle数据库中存储长度超过4000个字符的字符串?

我不确定如何使用Java / JDBC将非常长的字符串插入Oracle数据库。 我有一个大于4000个字符的字符串,假设它是6000.我想取这个字符串并将其存储在Oracle数据库中。 这样做的方式似乎是使用CLOB数据类型。 好的,所以我将列声明为描述CLOB。 现在,当实际插入数据时,我有一个准备好的语句pstmt。 它看起来像pstmt = conn.prepareStatement(“INSERT INTO Table VALUES(?)”) 。 所以我想使用方法pstmt.setClob() 。 但是,我不知道如何使用我的String创建一个Clob对象; 没有构造函数(大概是因为它可能比可用内存大得多)。 如何将我的String放入Clob? 请记住,我不是一个非常有经验的程序员; 请尽量保持解释尽可能简单。 效率,良好实践等不是这里的关注点,我只想要绝对最简单的解决方案。 如果可能的话,我想避免下载其他软件包; 现在我只使用JDK 1.4和标记为ojdbc14.jar 。 我看了一下,但我没能按照我发现的任何解释。 如果你有一个不使用Clobs的解决方案,我也会对此持开放态度,但它必须是一列。

rs.last()为仅向前结果集提供无效操作:last

我试图通过以下方式获得结果集的行数: rs.last(); int row_count = rs.getRow(); 但是我只获得了Invalid operation for forward only resultset : last的Invalid operation for forward only resultset : last错误。 结果集从Oracle 10g数据库获取其数据。 这是我如何设置我的连接: Class.forName(“oracle.jdbc.driver.OracleDriver”); String connectionString = “jdbc:oracle:thin:@” + oracle_ip_address + “:” + oracle_db_port + “:” + oracle_db_sid; Connection conn = DriverManager.getConnection(connectionString, oracle_db_username, oracle_db_password);

如何在一个报告中打印带有条形码或多个条形码的多个报告

我有一个条形码报告,它使用一个序列( Oracle后端)来生成条形码数字。 这是在我的查询中: SELECT to_char(PALLET_ID_NO_SEQ.nextval) FROM dual 我将此字段放在设计器窗口中,该窗口将显示条形码值。 我有一个表达式的图像: new com.pepkorit.BarbecueRotateRenderer( net.sourceforge.barbecue.BarcodeFactory.createCode128C( $F{TO_CHAR(PALLET_ID_NO_SEQ.NEXTVAL)}), false, true, 1, 50, 190, 50) 以上是使用序列值的条形码 。 我希望能够说打印/生成100个或更多报告。 此时我一次只能生成一个报告。 所以我的第一个猜测是获取一个参数,提示用户一个值,该值将指示要打印的条形码数量,每个条形码都有一个单独的数字。 我不确定我解决这个问题的想法是否正确以及如何做到这一点。 有人可以帮忙吗?

从Java调用Oracle函数

我在使用ojdbc14.jar从Java 1.6调用Oracle FUNCTION(不是存储过程)时遇到问题。 我不知道函数包含什么,因为我从远程服务器调用它,我所知道的是: FUNCTION ap_ch_get_acct_balances (VAR_PI_MOB_NO_ACCT_NO VARCHAR2, VAR_REPLY_CODE OUT NUMBER, VAR_EXT_RESPONSE OUT VARCHAR2, VAR_PO_ACC_BAL OUT CHAR, VAR_PO_ACCT_NO OUT CHAR) 我需要使用的架构是:FCRLIVE.AP_CH_GET_ACCT_BALANCES 我正在尝试这个: String call = “{ ? = call FCRLIVE.AP_CH_GET_ACCT_BALANCES(?, ?, ?, ?, ?) }”; CallableStatement cstmt = conn.prepareCall(call); cstmt.setQueryTimeout(1800); cstmt.setString(1, inputCode); cstmt.registerOutParameter(2, oracle.jdbc.OracleTypes.NUMBER); cstmt.registerOutParameter(3, oracle.jdbc.OracleTypes.VARCHAR); cstmt.registerOutParameter(4, oracle.jdbc.OracleTypes.CHAR); cstmt.registerOutParameter(5, oracle.jdbc.OracleTypes.CHAR); cstmt.executeUpdate(); 但我一直在日志文件中看到这个: java.sql.SQLException: ORA-01006: bind […]