- - PR -
DB2でクリエイトしたはずのテーブルが存在しない。
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-07-12 14:26
こんにちわ。
現在、DB2上のあるスキーマ上にテーブルを作成しているのですが、 クリエイトしたはずのテーブルがコントロールセンターからは参照できず、 しかし、Common SQL Environmentというフリーのツールからはそのテーブルの存在を確かめられます。 コマンド行プロセッサーを使って、そのクリエイトしたテーブルへデータを入れようとしているのですが、DB2関連ツールからはそのテーブルが認識できないため、作業ができなくなっています。 この問題に関して、どなたかご存知でしたらご教示願います。 |
|
投稿日時: 2004-07-12 14:35
"あるスキーマ" ってのが気になりますが,テーブル作成手順はどうなってるんでしょう?
何を使ってます? "DB2関連ツール" というのが何を指しているのか分かりませんが,CLPで Insert を実行した際のエラーメッセージはどのようなものでしょう? |
|
投稿日時: 2004-07-12 15:03
カニさん、返答ありがとうございます。
関係あるかどうかはわかりませんが、DB2のバージョンは7.1です。 @テーブル作成手順について CREATE文をファイルに記述し、CLPにて次にコマンドを入力しています。 「db2 -tvf [CREATE文が記述されたファイル名] | tee [CREATE文が記述されたファイル名].log」 A 実は、LOADコマンドにて、データをいれようとしておりまして、それがエラーとなっています。それは次のコマンドです。 LOAD FROM C:\HOGEHOGE.CSV OF DEL REPLACE INTO COMMON.テーブル名 STATISTICS YES AND INDEXES ALL; いや、実は、↑でREPLACEとしているのは、METHOD Lにて、各フィールドのバイト数刻みを記述できない(可変長レコード)なので、しかたなくそうしています。 今、CLPで1件のレコードをINSERTしてみましたら、問題なくINSERTできました。 エラーとはなりませんでした。 そして、CLPでSELECT COUNT(*) により、そのテーブルの件数を確認してみましたら、 1レコードあると、かえってきました。 しかし、相変わらず、コントロールセンターにはそのテーブル名は表示されてきません。 こんな感じです。説明が下手で申し訳ないです。 |
|
投稿日時: 2004-07-12 15:17
テーブル名が表示されない件:
・コントロールセンターで "最新表示" しても出ませんか? ・CLP で LIST TABLES を実行しても出ませんか? ロード実行時のエラー: ・エラーコード,エラーメッセージは? |
|
投稿日時: 2004-07-12 15:34
カニさん
素早いお返事ありがとうございます。 ・コントロールセンタでの最新表示について なんどもやっているのですが、まったく表示されません。 ・CLP での LIST TABLESの実行 以下のように0となっています。 ------------------------------------------------------- db2 => list tables 表/視点 タイプ 作成時刻 ------------------------------- ------- 0 レコードが選択されました。 ------------------------------------------------------- ロード実行時のエラーについて 下記のエラーが表示されています。 テーブルの設計ミスとデータ不備が原因のようです。 ----------------------------------------------------------------------------- SQL3125W 宛先のデータベースの列よりデータが長いために、行 "F0-1"、列 "1" の文字データが切り捨てられました。 SQL3137W 行 "F0-1" が短すぎます。ヌルにできないデータベースの列にロードされる入力値のうち、少なくと も 1 つが足りません。この行はロードされません。 ----------------------------------------------------------------------------- また、「索引」の所には、表名として、CREATEしたテーブル名がのっています。 以上になります。 お手数をお掛けして申し訳ありません。 |
|
投稿日時: 2004-07-12 15:58
コントロールセンターで,フィルターが設定してあるとかないですか?
LIST TABLES FOR SCHEMA スキーマ名 ではどうでしょう? |
|
投稿日時: 2004-07-12 16:08
ご対応ありがとうございます。
・フィルターについて 使っておりません。 ・LIST TABLES FOR SCHEMA スキーマ名の実行について おお!表示されました! ※すいませんが、実行結果のテーブル名称は実際のものと変更してあります。 ----------------「実行結果」---------------- db2 => LIST TABLES FOR SCHEMA COMMON 表/視点 タイプ 作成時刻 ------------------------------- --------------- ----- -------------------------- テーブルA COMMON T 2004-07-12-15.57.10.436001 マスタA COMMON T 2004-07-12-15.36.41.717001 マスタB COMMON T 2004-07-12-15.42.03.749001 マスタC COMMON T 2004-07-12-15.24.08.436001 マスタD COMMON T 2004-07-12-15.44.38.124001 5 レコードが選択されました。 ------------------------------------------------------------------- しかし、なぜこういう結果になってしまったのでしょうか? どこがいけなかったのか自分ではよくわかりません。 ご教示いただければ幸いです。 |
|
投稿日時: 2004-07-12 16:22
『DB2でクリエイトしたはずのテーブルが存在しない』という当初の問題に関しては,
テーブルは存在しており CLP で一覧表示され Insert も可能であることから解決ですね. コントールセンターに表示されないのは・・・何なんでしょう.分かりません. ロードエラーはデータがおかしいのかな? データに改行コードが入ってるとエラーになったりしますが,もしそうなら DELPRIORITYCHAR を設定すればよいかも. |