# Anzahl der Tabellen herausfinden



## Mizus (25. Mai 2004)

Hallöchen, habe eine Datenbank und möchte gerne wissen wieviele Tabellen diese hat.
Ich weiss zwar das es über das ResultSetMetaData oder DatabaseMetaData irgendwie gehen müsste aber irgendwie komme ich da nicht drauf.  ???:L

 mfg mizus


----------



## nollario (25. Mai 2004)

also, du brauchst ein DatabaseMetaData Objekt...

dann kannst du dir die Catalogs für die Datenbank darüber holen...

Und dann für die einzelnen Catalogs getTables....

Ist etwas komplexer, hab leider keine einfachere Lösung.


----------



## Mizus (25. Mai 2004)

Hab ich probiert aber 



```
myDatabaseMetaData.getCatalogs();
```

gibt ein ResultSet Objekt zurück. ResultSet stehlt die Methode getTables aber nicht zur Verfügung.


----------



## nollario (25. Mai 2004)

nein, aber die catalogs!!!!

und dann mit den catalogs wieder auf dataBaseMetaData getTables aufrufen...


----------



## Mizus (25. Mai 2004)

Ach so du meinst also so


```
ResultSet result  = myDatabaseMeta.getCatalogs();

            myDatabaseMeta.getTables(null, null, null, null);
```

Problem nur ich bekomme ja keinen int zurück sondern wieder ein Result Objekt. 

sorry stehle mich heute ein bissel blöd an  

edit: wenn ich die Methode 


```
ResultSet result  = myDatabaseMeta.getCatalogs();
```

aufrufe schmeist er mir folgende Exception:


```
java.sql.SQLException: [Oracle][ODBC Oracle Driver]Driver not capable.
	at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
	at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
	at sun.jdbc.odbc.JdbcOdbc.SQLTables(JdbcOdbc.java:5519)
	at sun.jdbc.odbc.JdbcOdbcDatabaseMetaData.getTables(JdbcOdbcDatabaseMetaData.java:2395)
	at sun.jdbc.odbc.JdbcOdbcDatabaseMetaData.getCatalogs(JdbcOdbcDatabaseMetaData.java:2471)
```

aber der Treiber funktioniert da ich an die Datenbank schon angedockt hab... sonst würde er die ja schon früher schreiben... oder ???  ???:L


----------



## nollario (25. Mai 2004)

hm...

das müsste ich mal hier ausprobieren, hab aber leider keine orcale db... und das dauert... muss auch noch was anderes machen! ;-)

sorry, kann ich so schlecht beurteilen. hab allerdings die erfahrung gemacht, dass manche db hersteller nicht die komplette jdbc vorgaben komplett richtig implementieren...

das kanns auch sein.

saludos
christian


----------



## Mizus (25. Mai 2004)

Das ist zwar ne Orcale Datenbank, das läuft aber alles über die odbc Schnittstellte


----------

