プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (4件)

下記ツールを使えば、簡単です。


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

ご参考まで。

参考URL:http://www.superdbtool.com
    • good
    • 0

こんな感じで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;
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/12/20 00:28

主キーの属性は何ですか?number型?char型?varvhar型?複数項目ですか?


insert xxx select yyy from zzz
とかできるので
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/12/20 00:24

このようなものは、Perlなどを使ってCSV形式で出力するプログラムを作るのが一般的です。


1度、プログラムを作ってしまえば、主キーだけでなく他の項目に対しても適用できます。

もう少し、具体的な説明があれば、もっと詳しい説明ができると思いますけどね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/12/20 00:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!