3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DB2でDBがないのにあると言われた話

Last updated at Posted at 2016-08-04

開発環境構築のお手伝いをしている時にDB2でDBが作れない!という方に遭遇。
みんな作れているのになんでその環境だけ作れないのさ?と思い調査した時のお話。

環境

Windows7
DB2 Express-C 10.1.0.872

CREATE DB実行時に発生したエラー

CREATE DB DB_NAME USING CODESET UTF-8 TERRITORY JP
SQL1005N  データベース別名 "DB_NAME"は、すでにローカル・データベース・ディレクトリーまたはシステム・データベース・ディレクトリーのどちらかに存在しています。

解析

いや、もうDBできてるんでしょ?
db2 list db directoryしてみる。
あれ?出てこない。

何かゴミが残ってるのかな?
DROP DB DB_NAMEしてみる。
SQL1013N データベース別名またはデータベース名 "DB_NAME"が見つかりませんでした。 SQLSTATE=42705
DBは見つからない。

じゃあ作れるでしょ?もう一回
CREATE DB DB_NAME USING CODESET UTF-8 TERRITORY JPしてみる。
同じ存在していますエラーが発生。
OK。状況は理解できた。DBがないのにあると言われる。トンチですか?

対応

LIST DATABASE DIRECTORY ON C:
するとカタログされていないがディスク上に存在するDB_NAMEが表示された。
C:ドライブでなければ別のドライブにいたかもしれない)

一旦、DB2 CATALOG DATABASE DB_NAME ON C:でカタログしてあげると
db2 list db directoryで表示されるようになったのでDROPしてからCREATE DBを実行して解決。

原因

エラーが発生した端末では過去に偶然、同名のDBを作成し削除した事があった模様。
(DB_NAMEは検証環境として誰でも思いつきそうな恐ろしく無難な名前だった)
もっとオリジナティ溢れる名前を指定しておけばこんな事にはならなかったのだろうな、
と思いつつも勉強になったので感謝。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?