JDBCには便利な機能があって、テーブルや列のメタ情報を取得できる(java.sql.DatabaseMetaDataのgetTablesとかgetColumnsとか)。 で、これらのメソッドの引数にはカタログとかスキーマを渡す必要がある。 これって何なの?というのを調べてみたい。 ちなみに、スキーマはどのDBMSでもだいたいスキーマだけど、カタログの方はDBMSによって違う。何なのかはDatabaseMetaData#getCatalogTermsにより調べられる。 手元にはOracle(12c)、SQL Server(2012)、MySQL(5.6)があるので、こいつらについて調べてみる。 Oracleのカタログとスキーマ catelog term (なし) 現在のカタログの取得 (なし) 現在のカタログの変更 (なし) 現在のスキーマの取得 Connection#getSchema