- PR -

DatabaseMetaDataのgetPrimaryKeysメソッドについて

1
投稿者投稿内容
はち
会議室デビュー日: 2006/09/28
投稿数: 4
投稿日時: 2007-01-25 13:22
プライマリキーの項目を取得したいのですが、

DatabaseMetaData dmd = con.getMetaData();
ResultSet rs;
rs = dmd.getPrimaryKeys(null, "ユーザ名", "テーブル名");

String str = "";
while (rs.next()) {
 str = rs.getString("COLUMN_NAME");
}

通常上記のように取得できるのですが、
テーブルを作成しなおし、プライマリキーも作成しなおした後、
古いプライマリキーを取得してしまいます。

同じような経験がおありの方、対応方法等ご存知の方、
ご教授頂けませんでしょうか。

宜しくお願い致します。



かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-01-25 13:39
コネクションをプールしたままテーブルを再作成したってことですか?
JDBCドライバは何を使っていますか?

コネクションが有効なままテーブルを再作成すると、
JDBCドライバの実装によっては
キャッシュされているメタデータを返すことも考えられます。

どのみち情報が少ないので、回答が難しいです。
はち
会議室デビュー日: 2006/09/28
投稿数: 4
投稿日時: 2007-01-25 14:03
かつのりさん
早速の回答、ありがとうございます。

tomcat5.5.20
Oracleのclasses12.jarを使用しています。
common/lib/の下に配置し、

Oracleなどいろいろ再起動していますが、
回復しないのです。

宜しくお願い致します。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-01-25 18:29
引用:

Oracleなどいろいろ再起動していますが、
回復しないのです。


いろいろって何ですか?
こっちは超能力者ではないので、
あなたが何に対して何をやって、どういう現象が発生しているのか、わかりません。

アプリケーションサーバも再起動していますか?
はち
会議室デビュー日: 2006/09/28
投稿数: 4
投稿日時: 2007-01-25 19:26
失礼しました。

ご指摘のとおり、いろいろでは、わかりませんね。
APサーバ(tomcat)、Oracleのサービス、Windowsの再起動です。

ご確認宜しくお願い致します。
1

スキルアップ/キャリアアップ(JOB@IT)