• ベストアンサー

あるテーブルのあるコラムを固定の値に変更したい。

Oracle 9i Databaseのデータベースがあります。 あるテーブルAがあり、大量のレコードが存在しています。 このテーブルAのコラムaを全件ある固定の値bに変更したいのですが、どのようにすればよいでしょうか。 レコード数が大量(数百万件)にあるので、できればupdateでなく何かSQLLoaderのように高速に行いたいのですが、もしご存知のかた、手順を教えて下さい。(SQLLoaderって追記しかできないのでしょうか??) 宜しくお願いします。

  • Oracle
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • trictrac
  • ベストアンサー率38% (10/26)
回答No.1

SQLLoaderで行うのであれば、 制御ファイルで INTO TABLE テーブル名 TRUNCATEと記述すれば よいです。 それか、同じ構成の別テーブルを作って、 Insert テーブルB select 'b', ・・・ from テーブルA とすれば良いのではないですか。

rio_grande
質問者

お礼

参考になりました。 有難うございました。

関連するQ&A

  • コラムの値からコラム・テーブルを検索

    プライマリキーが様々なテーブルで別の名前で利用されていると、テーブル同士の関連の全てが把握できずに困っています。以前にコラム名からテーブルを検索する方法を質問したのですが、私が扱っているデータベースでは、プライマリキーがシステムの別の場所で少しだけ異なる名前で利用されていることが多いので、その方法では把握できない関連が出てきます。 具体的には、EMPLOYEES__KEYというEMPLOYEESテーブルのプライマリキーがPERSONALIZE_EMPOYEESというテーブルでPSNLZ_EMP__KEYという名前で使われている状況を考えていただきたいと思います。PSNLZ_EMP__KEYのコラムのレコードは全てEMPLOYEES__KEY内のデータからとられているとします。 以前にselect TABLE_NAME from USER_TAB_COLUMNS where COLUMN_NAME = 'EMPLOYEES__KEY' というSQLで特定のコラムを使っているテーブルを全てリストアップできると教えていただいたのですが、今回のケースでは、同じような内容のコラムなのですが名前が異なるため上記のSQLでは検索できないテーブルがある場合、それをどうやってとってきたらよいのかということです。 コラムの値にtaro, jiro, hanakoなどのようにテーブルまたはシステム内でユニークな値が指定されている場合、コラムの値を指定し、「その値が使われているコラム・テーブルを列挙せよ」というような命令を与えればよいのだということまでは分かりますが、どのようにSQLを書けば良いか教えてください。

  • テーブル名をカラムとして取得する方法

    テーブル名をカラムとして取得する方法はありますでしょうか? オラクル8とVB6でプログラムを組んでいます。 例 TABLE Aの内容 カラム1 1 2 3 TABLE B カラム1の内容 4 5 6 SQLは簡略化してかきます。下記のSQLを実行した場合、 select A.カラム1 from A union select b.カラム1 from b 1 2 3 4 5 6 を取得できます。 例えば、上記で、SQL実行後、 下記のような値を取得したいです。 1 ,Aのテーブルだよ 2 ,Aのテーブルだよ 3 ,Aのテーブルだよ 4 ,Bのテーブルだよ 5 ,Bのテーブルだよ 6 ,Bのテーブルだよ それぞれのテーブルの名前を別名で結果に格納したいのです。 何か方法はありますでしょうか? なければ、unionせずに、2回SQLを発行し、それぞれに、 プログラム上で、「Aのテーブルだよ」を後で挿入したいと思っています。

  • 結合したテーブルの特定カラムのカウントについて

    PHPを学習しており、MySQLでデータベースにPDOで接続をしています。 添付画像のようなチームのデータを管理するテーブル(teamテーブル)と メンバーのデータを管理するテーブル(memberテーブル)があり、 teamテーブルのkeywordカラムを検索条件にし、 keywordカラムの値が『keyword1』と一致するteamテーブルのレコードの teamcodeカラムの値と一致する値を持つ memberテーブルのレコード数をカウントして teamテーブルから『teamcode』、『teamname』、『teamkana』、『date』を取得し、memberテーブルでの『teamcode』の該当数を取得したいです。 OUTER JOINして、NULLIFやCOALESCEなどを使用して試してみたのですが、 構文の使い方が悪いのか、そもそも使うべきSQL文が違うのかわかりませんが、 添付画像の『teamcode』の値が『0004』のもののように memberテーブルに該当する値が存在しないものは NULLになってしまい、取得ができませんでした。 できればmemberテーブルに該当する値が存在しない場合は「0」として取得したいです。 このような場合、どのようなSQL文を記述したら良いのでしょうか? 少しややこしい内容ですので、説明が不足していたり、 説明が分かりづらいようであれば補足します。 ご回答、よろしくお願いします。

    • ベストアンサー
    • PHP
  • カラムの値を、条件により動的に決定する方法

    単一レコード内において、 Bの値を条件により決定したいのですが可能でしょうか。 <構成> テーブル:hoge カラム:A,B <条件> Aにデータがあれば、Bは"●" Aにデータがなければ、Bは"×" よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • 異常?なカラムのデータについて教えて下さい。

    異常?なカラムのデータについて教えて下さい。 あるテーブルを全件出してみたところ、あぁNULLデータが入っているレコードがあるなーと気づきました。 抽出データには不要だったので“カラム IS NOT NULL”をしてみたのですがNULLデータを持ったレコードが排除できません。 別の方法で “カラム = ''” とか “カラム like '%%'” なんてやってみたのですがデータがNULLになっているものが排除できません。 これは不具合なのでしょうか?

  • 【mySQL】テーブル構造のアップデート

    WEB向けCMSをつくっているのですが、 CMSで データベースのテーブルの カラムの追加や 型の変更が合った場合 レコードにできるだけ影響を与えずアップデートできるようにしたいのですが、 どうすればいいのでしょうか? WordPress等は、アップデート時にデータベース構造に関わるような改変が合った場合 どのようにアップデートをおこなっているのでしょうか?

  • AccessのColumnがうまく出来ずに困っています。

    AccessのColumnがうまく出来ずに困っています。 状況 テーブルA(参照用) テーブルB(データベース) フォーム(データベース入力用) テーブルAにはX,Y,Zの情報が入力されています。 目的 フォームの入力箇所1はXの値をドロップダウンリストから選択するようになっているため、 選択したXの値に対応したY,Zの値を入力箇所2、3に自動入力させる 症状 入力箇所1の値集合ソースはX,Y,Z 入力箇所1の更新後処理に入力箇所2用と、入寮箇所3用の2つのColumn文があります。 Column(0)にするとXと同じ値が反映し、Column(1)にするとYの値が反映する。 これにより入力箇所2,3どちらにもXまたはYの値を自動反映することが出来ています。 このことからColumn自体は正常に機能していると思うのですが・・・ Column(2)にすると何故か何の値も帰らず空白となります。 どこに原因があるのかさっぱりわからないのでどなたか助けて下さい。

  • 複数テーブルからデータを取り、updateする

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=1211685 にも同じような質問があったのですが、同様の処理でうまくupdateされません。分かる方がいらっしゃいましたら教えてください。 今、テーブルが2つ(table1、table2)があり、それぞれ2つのカラム(column1、column2)を持っています。ここで、それぞれのカラム2が等しく、カラム1が指定した値のレコードのみ値をupdateしたいです。 update table1 set column1 = 'AAA' from table1,table2 where table1.column2 = table2.column2 and table1.column1 = 'BBB' and table2.column1 = 'CCC' としたところ、「from table1,table2 where 」の辺りに間違いがあると表示されます。 上の例とどう違うのか分かりません。 よろしくお願いします。m(__)m

  • NULLだったら、aカラムの値をbカラムへコピー

    ■前提 ・MySQLの同じテーブル内に、datetime型の「aカラム」「bカラム」がある ■質問 ・この時、bカラムがNULLだったら、aカラムの値をbカラムへコピーするSQL文を教えてください

    • ベストアンサー
    • MySQL
  • 日付型カラムへのデータINSERT

    お世話になります。ひとつご教授ください。 オラクル10g, ojdbc14でjdk1.4.2から接続です。 INSERT命令を使ってテーブルにレコードを追加する際に、DATE型のカラムに対して INSERT TABLE_A (DATE1, ...) VALUES ('2006-4-27 12:00:00', ...); を実行するとエラーORA-01861が出ます。そこで INSERT TABLE_A (DATE1, ...) VALUES ('2006-4-27', ...); このように記述して再度実行すると通ります。 このようなとき、時間の部分まで設定した値をカラムに格納したいときはどうしたらよろしいでしょうか? よろしくお願いします。