2008/12/12

Oracle以外のDBからでも簡単にテーブル一覧取得できるんだ

今までDB内のテーブルを一覧取得するのはOracleでsql投げるぐらいしか方法がないと思ってました。

javaでjdbcにてまさか取れるとは・・・感動しました。(ここではthinではなくoci接続を利用。)

import groovy.sql.Sql

def props = [
    user:"ゆーざめい"
    ,password:"ぱすわーど"
] as Properties

def gsql
try{
    gsql = Sql.newInstance(
        "jdbc:oracle:oci8:@せっていち"
        ,props
        ,"oracle.jdbc.driver.OracleDriver")

    def conn = gsql.connection
    def rs = conn.metaData.getTables(null, props.user, "%", null)
    while(rs.next())
        println rs.getString("TABLE_NAME")
} finally {
    gsql?.close()
}

これは便利!スクリプト用意しておけば、Oracle以外のプロジェクトでも使える♪いいね。

これでclose処理正しいのかな・・・

2 件のコメント:

  1. ちょwこれJDBCさわったらまっさきにやるところでしょう。

    まぁテーブル一覧よりカラム一覧のほうが使用頻度は高いですけどね。

    返信削除
  2. >shinさん
    お恥ずかしいです。
    まだまだjavaも勉強不足ですね…
    JDBCまわりもう少しさわり倒します

    返信削除