2016-05-17 9 views
0

JDBC unterstützt Folgendes:Abfrage, die die Spaltentyp ganze Zahl für eine gegebene Tabelle zurückgibt

ResultSet columns = connection.getMetaData().getColumns(null, schema, tableName, null); 

So kann ich Informationen für alle Spalten in der angegebenen Tabelle einschließlich der DATA_TYPE Informationen abrufen kann. Diese Information ist vom Typ int in Java.

habe ich die folgende Abfrage Spaltennamen und Datentyp, aber diese gibt die Stringdarstellung von Datentyp abzurufen und I int brauchen:

select column_name, data_type from all_tab_cols where table_name = 'tablename' and owner = 'owner'; 

Wie funktioniert die Linie von Java-Code zu einer Abfrage in Oracle übersetzen DB?
Wie kann ich die Int-Darstellung einer Spalte abrufen?
Ich würde eine Verknüpfung verwenden, aber ich weiß nicht, woher ich die Informationen erhalten soll. Wo speichert Oracle diese Informationen?

+0

Der numerische Standarddatentyp in Oracle ist NUMBER. Keine Unterscheidung zwischen int und float/double. (Wenn Sie Glück haben, wenn eine Spalte wirklich integer sein sollte, sehen Sie etwas wie NUMBER (8,0), aber das ist eher selten.) Wie wollen Sie identifizieren, welche Spalten int sind und welche float/doppelt? – mathguy

Antwort

0

Zum Ausführen von SQL für eine Datenbank ohne Verwendung von ORM-Tools wie Hibernate können Sie sich die Klasse PreparedStatement ansehen. getColumnType(<0 based index of the column you want to find the type>)documentation can be found here

:

Wenn man sich die „Metadaten“ über die Spalten Ihre PreparedStatement zurück aussehen wollen, können Sie einen Blick auf die getMetaData() Verfahren erfolgen kann, können die Dokumentation here und dann fragen Sie den ResultSetMetaData über den Spaltentyp gefunden werden

In Bezug auf Ihre Frage, wie Java zu Abfrage in Oracle übersetzt, ist es zu breit, um in einer Antwort beschrieben zu werden. Ich würde empfehlen, nach einem Tutorial auf JDBC oder dem offiziellen tutorial zu suchen.

Verwandte Themen