は、私が思うMYTABLEが、名前がOracleでNUMBER型のMYTABLEIDである列を持っているならば、どのように私は何がなることを知っている得ることができることを知ってもらうことができ、このコードセグメントでは、このコードセグメントjavaでデータベース固有のデータ型を取得する方法は?
Class.forName ("oracle.jdbc.OracleDriver");
connection = DriverManager.getConnection
("jdbc:oracle:thin:@//XXX.XXX.XXX.XXX:1521/xe", "abc", "def");
DatabaseMetaData metaData=connection.getMetaData();
ResultSet rsc= metaData.getColumns(null, "MYSCHEMA", "MYTABLE", null);
while (rsc.next()){
System.out.println(rsc.getString("COLUMN_NAME").toUpperCase());
System.out.println(rsc.getString("TYPE_NAME").toUpperCase());
System.out.println(rsc.getInt("COLUMN_SIZE"));
System.out.println(rsc.getInt("DECIMAL_DIGITS"));
System.out.println(rsc.getString("IS_NULLABLE").toUpperCase()) ;
System.out.println(rsc.getInt("ORDINAL_POSITION"));
System.out.println(rsc.getInt("DATA_TYPE"));
System.out.println("********************************************");
}
を考えてみましょうMysqlまたはPostGresqlで対応するNUMBER相当のデータ型名?基本的には、データベース固有のデータ型を取得することです。 OracleのようにCLOBデータ型がありますが、postgresqlには同等のデータ型としてbyteaがあります。私は、特定のデータベース(oracleからmysqlまたはpostgresqlなど)にテーブルを作成するDDL(Create table statement)を作成できるように、データベース固有のタイプが必要でした。
私はあなたのコードにこれらのデータ型を手動でマップする必要があると思います – MozenRath
@ MozenRathは手動でですか?ああ、神様。それでは、私はバグに招待しています。:( – Rajesh
何を達成したいですか? 'rsc.getObject'を使用して、結果オブジェクトの' instanceof'チェックをしませんか? – Jonathan