Here is some source code in java:
usage:
java <parameters> testOra url:port user password <file with one request per
line> alltables
If the connection fail, try to change the jdbc driver...
---8<-----------------------------------------------------------------------
-----------
import java.io.*;
import java.net.*;
import java.util.*;
import java.sql.*;
/**
*
*/
class testOra
{
static ArrayList tables = new ArrayList();
static int n = 0;
/**
*
*/
public static void main (String[] argv)
{
try
{
Connection con;
DriverManager.registerDriver(new
oracle.jdbc.driver.OracleDriver());
con = DriverManager.getConnection ("jdbc:oracle:thin:@" +
argv[0],
argv[1], argv[2]);
System.out.println("Connection OK !");
Statement stmt = con.createStatement();
BufferedReader input = new BufferedReader(new
FileReader(argv[3]));
String line = "";
if(argv.length > 4)
{
DatabaseMetaData dbmd = con.getMetaData();
String [] types = new String[7];
types[0] = "TABLE";
types[1] = "VIEW";
types[2] = "SYSTEM TABLE";
types[3] = "GLOBAL TEMPORARY";
types[4] = "LOCAL TEMPORARY";
types[5] = "ALIAS";
types[6] = "SYNONYM";
ResultSet rset = dbmd.getTables("%","%","%",types);
System.out.println("--------------------------------------------------------
-----------------------------------------");
System.out.println("DATABASE'S TABLES");
execRequest(rset);
}
int num = 1;
while((line=input.readLine()) != null)
{
System.out.println("--------------------------------------------------------
-----------------------------------------");
System.out.println("REQUETE numero : "+num);
num++;
ResultSet rs = stmt.executeQuery(line);
execRequest(rs);
}
System.out.println("--------------------------------------------------------
-----------------------------------------");
if(argv.length > 4)
{
Iterator i = tables.iterator();
while(i.hasNext())
{
line = (String)i.next();
System.out.println("--------------------------------------------------------
-----------------------------------------");
System.out.println("TABLE : "+line);
System.err.println("Processing table "+line+"...");
try
{
ResultSet rs = stmt.executeQuery("select * from "+line);
execRequest(rs);
}
catch(Exception e)
{
System.out.println("Impossible d'executer : select *
from "+line);
System.out.println(e.getMessage());
}
}
System.out.println("--------------------------------------------------------
-----------------------------------------");
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void execRequest(ResultSet rs)
throws Exception
{
ResultSetMetaData rsmd = rs.getMetaData();
String labels = "";
for(int i = 1; i <= rsmd.getColumnCount(); i++ )
{
labels+=rsmd.getColumnName(i)+"\t";
}
System.out.println(labels);
String r1,r2,r3,r4,r5,r6,r7,r8,r9,r10;
String r11,r12,r13,r14,r15,r16,r17,r18,r19,r20;
String r21,r22,r23,r24,r25,r26,r27,r28,r29,r30;
String r31,r32,r33,r34,r35,r36,r37,r38,r39,r40;
while( rs.next() )
{
r1 = r2 = r3 = r4 = r5 = r6 = r7 = r8 = r9 = r10 = "";
r11 = r12 = r13 = r14 = r15 = r16 = r17 = r18 = r19 = r20 = "";
r21 = r22 = r23 = r24 = r25 = r26 = r27 = r28 = r29 = r30 = "";
r31 = r32 = r33 = r34 = r35 = r36 = r37 = r38 = r39 = r40 = "";
try
{
r1 = rs.getString(1);
r2 = rs.getString(2);
r3 = rs.getString(3);
r4 = rs.getString(4);
r5 = rs.getString(5);
r6 = rs.getString(6);
r7 = rs.getString(7);
r8 = rs.getString(8);
r9 = rs.getString(9);
r10 = rs.getString(10);
r11 = rs.getString(11);
r12 = rs.getString(12);
r13 = rs.getString(13);
r14 = rs.getString(14);
r15 = rs.getString(15);
r16 = rs.getString(16);
r17 = rs.getString(17);
r18 = rs.getString(18);
r19 = rs.getString(19);
r20 = rs.getString(20);
r21 = rs.getString(21);
r22 = rs.getString(22);
r23 = rs.getString(23);
r24 = rs.getString(24);
r25 = rs.getString(25);
r26 = rs.getString(26);
r27 = rs.getString(27);
r28 = rs.getString(28);
r29 = rs.getString(29);
r30 = rs.getString(30);
r31 = rs.getString(21);
r32 = rs.getString(22);
r33 = rs.getString(23);
r34 = rs.getString(24);
r35 = rs.getString(25);
r36 = rs.getString(26);
r37 = rs.getString(27);
r38 = rs.getString(28);
r39 = rs.getString(29);
r40 = rs.getString(30);
}
catch (Exception n)
{}
if( n == 0 )
tables.add(r3);
System.out.println(r1 + "\t" + r2 + "\t" + r3 + "\t" + r4 + "\t" +
r5 + "\t" + r6 + "\t" + r7 + "\t" + r8 + "\t" + r9 + "\t" + r10 + "\t" + r11
+ "\t" + r12 + "\t" + r13 + "\t" + r14 + "\t" + r15 + "\t" + r16 + "\t" +
r17 + "\t" + r18 + "\t" + r19 + "\t" + r20 + "\t" + r21 + "\t" + r22 + "\t"
+ r23 + "\t" + r24 + "\t" + r25 + "\t" + r26 + "\t" + r27 + "\t" + r28 +
"\t" + r29 + "\t" + r30 + "\t" + r31 + "\t" + r32 + "\t" + r33 + "\t" + r34
+ "\t" + r35 + "\t" + r36 + "\t" + r37 + "\t" + r38 + "\t" + r39 + "\t" +
r40);
}
n++;
}
}
---8<-----------------------------------------------------------------------
---------------------
Loïc Lefèvre
-----Message d'origine-----
De : João Folha [mailto:[EMAIL PROTECTED]]
Envoyé : mardi 24 juillet 2001 04:48
À : [EMAIL PROTECTED]
Objet : How can i get all table's name from JDBC driver?
Hi there,
I need to get all table's name from JDBC driver and all column's name from
any table.
Can you help me?
cheers
João Folha