2009-02-25 5 views

答えて

10

私はIF EXISTの機能を持っているMySQLとは異なり、ほんの少しのことを除いて、わかりません。

あなたがしていることは、データベースに接続しようとしている可能性がない場合です。そして、成功した接続の後、SELECT count(*)FROM TABLE_NAMEのような簡単な選択をして、テーブルが存在するかどうかを知ることができます。あなたは例外に依存します。 Sunの公式の例でも、私は同様の回避策を見てきました。

Oracleでは、データベースオブジェクトについて知るための辞書テーブルがあります。ダービーにそういうことがあるのか​​どうかは疑問だ。

[編集]

はまあ、私はテーブルが存在するかどうかを知る方法があることがわかりました。 SELECT tablename FROM SYSTABLESを試してみてください。これはテーブルの存在をチェックするためのもので、データベースをチェックするために、私は上記で説明したのと同様のことをする必要があります。

8

Adeelの場合は、もちろんオブジェクトを返してからgetTablesを返すこともできます。これには、その価値のあるJDBCドライバを備えたデータベースで作業する利点があります。

データベースが存在するかどうかをチェックするためにあなたが埋め込まれた形でダービーを使用している、またはサーバが同じマシン上にある場合は、データベース用のフォルダが存在する場合は、あなたがチェックすることができ。しかし、少しkludgyです。私はAdeelが提案して接続しようとしますが、それがない場合は例外をキャッチします。私はその後のgetTables ResultSetを返し、それから(NULL、NULL、NULL、新しいString [] { "TABLE"})メソッドを使用して、DatabaseMetaDataオブジェクトを取得示唆

2

。テーブルが存在するかどうかをテストするために、ブール値を返すResultSetのnext()メソッドを使用します。それが真であるとすれば、存在するテーブルがあります。 Falseであり、データベースは空です。

関連する問題