-->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();
}
}
}