• 締切済み

テストデータを作成したい

Oracle9iです。テストデータを作成したいです。 カラムが200くらいあるテーブルに対して、既に登録済みの1レコードの主キーだけ変更したものを10万件登録したいのですが、何かいい方法はないでしょうか?

みんなの回答

  • letsdb2
  • ベストアンサー率0% (0/0)
回答No.4

下記ツールを使えば、簡単です。 http://www.superdbtool.com ExcelDBToolで1つのテーブルが出来ましたら、同じ列名のほかのテーブルにコピーできます。 また、Excelに線を引いて、引いた線でデータの作成もできます。 下記のダミーデータ作成もできます。 日付, 時間, タイムスタンプ, 都道府県, E-Mail, URL, 郵便番号, 携帯, 苗字のみ, 氏名, ふりがな, 性別, 年齢, 血液型, 固定電話, 婚姻, 固定値, 国籍, 国籍英語, 国籍英語略, 企業名, 住所, 住所ふりがな, 半角英字, 市区, 町村, 最寄駅, 最寄駅ふりがな, 路線, 銀行コード, 銀行名, 銀行カタカナ, 支店コード, 支店名, 支店カタカナ, 大学名, 業種大分類, 業種大分類名称, 業種中分類, 業種中分類名称, 業種小分類, 業種小分類名称, 職種大分類, 職種大分類名称, 職種中分類, 職種中分類名称, 職種小分類, 職種小分類名称, 数値連番, 整数・小数点数, 英数混在, 文字列+連番, 文字列+全角連番, 全角漢字, ひらがな, 全角カタカナ, 半角カタカナ, 全角英数, 全角数値, 全角英字, 全半混在, 特殊文字 ご参考まで。

参考URL:
http://www.superdbtool.com
  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.3

こんな感じで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;

ikedaikeda2008
質問者

お礼

回答ありがとうございました。 今回は、自分が困っていたことに気付いた先輩がデータ作成をしてくれました。 この方法でどうなるのかを試してみたいと思いました。 ヒントありがとうございました。

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.2

主キーの属性は何ですか?number型?char型?varvhar型?複数項目ですか? insert xxx select yyy from zzz とかできるので

ikedaikeda2008
質問者

お礼

回答ありがとうございました。 今回は、自分が困っていたことに気付いた先輩がデータ作成をしてくれました。 主キーは、number型でした。情報少なくて申し訳ありませんでした。 ヒントありがとうございました。

noname#140045
noname#140045
回答No.1

このようなものは、Perlなどを使ってCSV形式で出力するプログラムを作るのが一般的です。 1度、プログラムを作ってしまえば、主キーだけでなく他の項目に対しても適用できます。 もう少し、具体的な説明があれば、もっと詳しい説明ができると思いますけどね。

ikedaikeda2008
質問者

お礼

回答ありがとうございました。 今回は、自分が困っていたことに気付いた先輩がデータ作成をしてくれました。 初心者なので、Perlがわかりませんが、今後勉強していきたいです。 ヒントありがとうございました。

関連するQ&A