- 締切済み
テストデータを作成したい
Oracle9iです。テストデータを作成したいです。 カラムが200くらいあるテーブルに対して、既に登録済みの1レコードの主キーだけ変更したものを10万件登録したいのですが、何かいい方法はないでしょうか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- letsdb2
- ベストアンサー率0% (0/0)
下記ツールを使えば、簡単です。 http://www.superdbtool.com ExcelDBToolで1つのテーブルが出来ましたら、同じ列名のほかのテーブルにコピーできます。 また、Excelに線を引いて、引いた線でデータの作成もできます。 下記のダミーデータ作成もできます。 日付, 時間, タイムスタンプ, 都道府県, E-Mail, URL, 郵便番号, 携帯, 苗字のみ, 氏名, ふりがな, 性別, 年齢, 血液型, 固定電話, 婚姻, 固定値, 国籍, 国籍英語, 国籍英語略, 企業名, 住所, 住所ふりがな, 半角英字, 市区, 町村, 最寄駅, 最寄駅ふりがな, 路線, 銀行コード, 銀行名, 銀行カタカナ, 支店コード, 支店名, 支店カタカナ, 大学名, 業種大分類, 業種大分類名称, 業種中分類, 業種中分類名称, 業種小分類, 業種小分類名称, 職種大分類, 職種大分類名称, 職種中分類, 職種中分類名称, 職種小分類, 職種小分類名称, 数値連番, 整数・小数点数, 英数混在, 文字列+連番, 文字列+全角連番, 全角漢字, ひらがな, 全角カタカナ, 半角カタカナ, 全角英数, 全角数値, 全角英字, 全半混在, 特殊文字 ご参考まで。
- 参考URL:
- http://www.superdbtool.com
- yamada_g
- ベストアンサー率68% (258/374)
こんな感じでinsert文を作ってみてはどうでしょうか。 全角でインデントしてますので半角に直してください。 select case when column_id = 1 then 'insert into ' || table_name || ' select ' end || case when column_name = '主キー' then column_name || ' + rownum' --主キーを適当に編集 else column_name end || case when column_id = max_column_id then ' from '|| table_name || ',tab,tab' --件数を増幅するためにtabをクロスジョイン ||' where 主キー = ''条件'' and rownum <= 100000;' --登録件数 else ',' end from (select a.*,max(column_id) over() max_column_id from user_tab_cols a where table_name = 'テストデータを作成するテーブル名') order by column_id;
- SaKaKashi
- ベストアンサー率24% (755/3136)
主キーの属性は何ですか?number型?char型?varvhar型?複数項目ですか? insert xxx select yyy from zzz とかできるので
お礼
回答ありがとうございました。 今回は、自分が困っていたことに気付いた先輩がデータ作成をしてくれました。 主キーは、number型でした。情報少なくて申し訳ありませんでした。 ヒントありがとうございました。
このようなものは、Perlなどを使ってCSV形式で出力するプログラムを作るのが一般的です。 1度、プログラムを作ってしまえば、主キーだけでなく他の項目に対しても適用できます。 もう少し、具体的な説明があれば、もっと詳しい説明ができると思いますけどね。
お礼
回答ありがとうございました。 今回は、自分が困っていたことに気付いた先輩がデータ作成をしてくれました。 初心者なので、Perlがわかりませんが、今後勉強していきたいです。 ヒントありがとうございました。
お礼
回答ありがとうございました。 今回は、自分が困っていたことに気付いた先輩がデータ作成をしてくれました。 この方法でどうなるのかを試してみたいと思いました。 ヒントありがとうございました。