- 締切済み
oracle DB内のデータを増幅する方法について
Oracle 10gにて、DB内のデータを「指定されたレコード数」だけ増幅したいのですが、実現方法が思い浮かびません。 私が試した実現方法は、以下の通りです。 エクスポートして、EXCELやCSVに出力し、ほしいレコード数に修正することを考えましたが、 EXCELやCSVの最大行数?を超えているため正しく出力されませんでした。。。 ※ちなみに、私はエクスポート=テーブルの全データを出力と考えています。エクスポートで出力レコード数を指定することはできるのでしょうか? どうか、ご教授願います。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- muyoshid
- ベストアンサー率72% (230/318)
こんにちわ。 > DB内のデータを「指定されたレコード数」だけ増幅したい 例えば、hoge表のデータを増幅させるとして、SQL*Plus から 以下のようにすると簡単にデータ増幅ができます。 ※ Primary Key があったりすると、エラーになりますが SQL> inset into hoge select * from hoge; SQL> / SQL> / SQL> / SQL> commit; テキストに出力するのであれば、こんな感じです。 SQL> select h.* from hoge h, (select 1 from user_tab_columns where rownum <= 100) t; → user_tab_columns に100件以上データがあれば、hoge 表のデータが100回出力されます。 データの中身を変えながら増幅させるのであれば、無名PL/SQL ブロックが便利です。
- nora1962
- ベストアンサー率60% (431/717)
正式には未公認らしいのですが select level from dual connect by level < 10; とすると LEVEL ---------- 1 2 3 4 5 6 7 8 9 の9行のデータを取得できます。 このようにして取得した指定行数のインラインビューと、増幅したいテーブルをCROSS JOIN すればどうでしょう。