Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Error retrieving data using oracle thin jdbc driver

0 views
Skip to first unread message

Glenn Twiggs

unread,
Apr 1, 1998, 3:00:00 AM4/1/98
to

I am running a large select returning a single row of 44 columns.
Sometimes it works, sometimes I get the following error (including the
12!):

-->java oracleTest
12
java.lang.ArrayIndexOutOfBoundsException: 12
at
at oracle.jdbc.ttc7.Odscrarr.decodeColName(Odscrarr.java:338)
at
oracle.jdbc.ttc7.Odscrarr.decodeAllColumnNames(Odscrarr.java:292)
at oracle.jdbc.ttc7.Odscrarr.receive(Odscrarr.java:230)
at oracle.jdbc.ttc7.TTC7Protocol.describe(TTC7Protocol.java:463)

at
oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:509)

at
oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:982)

at
oracle.jdbc.driver.OracleStatement.doExecute(OracleStatement.java:1143)
at
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1178)

at
oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:57)

at oracleTest.main(oracleTest.java:37)

Has anyone seen this error?

Here is the code:

import java.io.*;
import java.math.*;
import java.sql.*;

public class oracleTest
{
public static void main(String[] args)
{
StringBuffer sbuf = new StringBuffer();
BufferedReader in = null;

try {
try {
in = new BufferedReader( new FileReader("table.sql"));

while(true)
{
char[] buf = new char[512];
int i;

if ( (i = in.read(buf)) == -1) throw new EOFException();
sbuf.append(buf, 0, i);
}
} catch (EOFException ignoreEOF) {
// End of file reached.
} finally {
try { if (in != null) in.close(); } catch (IOException ignore)
{}
}
String sql = sbuf.toString();

DriverManager.registerDriver(new
oracle.jdbc.driver.OracleDriver());

Connection con =
DriverManager.getConnection("jdbc:oracle:thin:@...", "...", "...");

PreparedStatement s = con.prepareStatement(sql);

ResultSet results = s.executeQuery();

ResultSetMetaData rmd = results.getMetaData();

int columnCount = rmd.getColumnCount();
String[] columnNames = new String[columnCount+1];

for (int i=1; i <= columnCount; i++)
columnNames[i] = rmd.getColumnName(i).toString();

while (results.next())
{
for (int i=1; i <= columnCount; i++)
{
Object obj = results.getObject(i);
if (obj == null)
System.out.println(columnNames[i] + " = null");
else
System.out.println(columnNames[i] + " = " + obj.toString());

}
}
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}

}


0 new messages